数据库中大量MySQL表的副作用

时间:2013-08-23 04:12:18

标签: mysql database

在MySQL数据库中保留10000多个表是否可以? 我正在制作一个消息/聊天脚本,所以我正在考虑将数据划分到多个表中,因为在几天之后它将是大量数据。 可以吗? 或者它有一些影响? 好吧,因为一个表可以容纳数百万行所以我想也许数据库可以容纳大量的表

或者,问题可能是,Facebook如何存储大量的每日聊天消息?

我是MySQL的新手,请帮忙

2 个答案:

答案 0 :(得分:2)

MySQL对表的数量没有限制。 基础文件系统可能对表示表的文件数量有限制。单个存储引擎可能会施加特定于引擎的约束。 InnoDB允许多达40亿个表。

即便如此,典型的DBMS将“处理”如此庞大的数据库,但系统目录在此类系统中的压力比平时要大。

我在一个数据库中有大表没有不良影响,除了在phpMyAdmin中显示表列表需要一段时间

答案 1 :(得分:1)

这是可能的,但我会避免它,除非你有一个真正的好的用例。它引发了各种可伸缩性和可维护性问题。您的表大小主要受可用磁盘空间的限制。

如果你真的需要这样做......

由于MyISAM表每个表使用两个文件描述符,因此您需要增加操作系统允许打开的文件描述符的最大数量。 (如果您正在使用Linux,那么请阅读bash手册页中关于ulimit的部分,了解如何执行此操作)。

此外,还有一个名为table_cache的MySQL配置值限制了允许的表的数量。您需要确保它足够大以支持您需要的表数。

您不再需要使用标准的“冲洗表”(除非您是那种喜欢看油漆的人),因此您需要单独冲洗每张表(例如在关机前)。 / p>

同样,我会避免使用这么多表。你可能最好在少数几个表中支持你需要的模式,如果你担心存储太多数据,可以考虑归档,仓储(或删除!)旧数据。