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