0


嘿,
我需要调整我们的一台 mysql(RH5.8 上的 5.1)服务器以处理超过 10K 表,我认为 mysql 处理 10-20K 表没有任何问题,但我确信它的 cnf 有一些变化需要文件。

我添加到 my.cnf 文件中的唯一内容是table_open_cache=20000

我使用的是 InnoDB 存储引擎,而不是使用查询缓存。
还有什么我想念的吗?

谢谢

4

1 回答 1

2

默认情况下,InnoDB 将所有表存储在一个文件中,因此如果您计划将表变大,您可能会遇到文件大小的操作系统限制,否则拥有这么多表并没有任何问题或性能问题。如果您要存储大量数据,请检查您的操作系统文件大小限制并查看是否需要使用该选项innodb_file_per_table,以便每个表都放在自己的文件中。

从你现在拥有的到想要 10k+ 表并没有任何特定的配置更改只是为了处理那么多表。

我建议阅读有关以下 InnoDB 主题的 MySQL 参考手册:配置磁盘 I/O 和文件空间管理调整限制,以查看是否需要根据这些部分的信息更改配置或应用程序。也许最有价值的部分是调音部分。

如果您计划创建和删除大量增长到合理大小的表,您可能希望使用 file per table 选项,以减少表空间的碎片化。

正如其他人所说,可能有一种方法可以构建数据,这样您就不需要 10-15,000 个表,但可以使用适当的索引将大量表数据放入单个表中。如果不知道您要存储什么以及为什么需要这么多表,就不可能说出来。希望有帮助。

于 2012-09-11T22:21:00.917 回答