嘿,
我需要调整我们的一个mysql(RH5.8上的5.1)服务器以使用超过10K的表,我没有看到mysql处理10-20K表的任何问题,但我确定它的cnf文件的一些更改是需要的。
我添加到my.cnf文件的唯一内容是table_open_cache=20000
我正在使用InnoDB存储引擎,而不使用查询缓存。
我还缺少什么?
由于
答案 0 :(得分:2)
默认情况下,InnoDB将所有表存储在一个文件中,因此如果您计划的表很大,则可能会对文件大小达到操作系统限制,否则使用这么多表时实际上没有任何问题或性能问题。如果要存储大量数据,请检查操作系统文件大小限制,看看是否需要使用选项innodb_file_per_table
,以便每个表都放在自己的文件中。
从你现在所拥有的10k +表开始,并没有真正有任何特定的配置更改,只是为了处理那么多表。
我建议您阅读以下InnoDB主题的MySQL参考手册:Configuration,Disk I/O and File Space Management,Tuning和Limits,看看是否需要更改您的配置或应用程序基于这些部分的信息。也许最有价值的部分是调整部分。
如果您计划创建和删除大量合理大小的表,您可能希望使用每个表的文件选项,以便您的表空间碎片更少。
正如其他人所说,可能有一种方法来构建数据,这样您就不需要10-15,000个表,但可以使用正确的索引将大量表数据放入单个表中。在不知道你要存储什么以及为什么需要这么多表的情况下,不可能说。希望有所帮助。