Dan*_*llo 27
您提出此问题的事实可能表明您没有采用最佳实践方法解决您的问题.
您可能想要解释为什么需要创建许多表,以便了解您是否会收到有关如何解决此问题的更好建议.
但是,MySQL数据库中的表数没有服务器限制,但由于每个MyISAM表都有关联文件,因此对允许的文件数量的任何操作系统限制都会产生影响.InnoDB表,索引等存储在单个表空间中,最多包含20亿个表.(来源)
与 Daniel Vassallo 的回答相反,我有一个需要大量表的用例。我可能是错的,但我认为没有任何“最佳实践”可以减少表的数量。
虽然表的数量仅受操作系统限制可能是正确的,但我只想补充一点,我在一个数据库中使用了超过 1000 个表,并且性能非常好。唯一的缺点似乎是 .frm 文件的开销增加。就我而言,我将一个非常大的表拆分为 1000 多个具有相同表结构的单独表。由于非规范化,MySQL 分区对我来说不是一个选择,它需要在单独的表中每个记录的 2 个副本。
小智 5
我还有一个需要大量表的用例.目前,我们的一个数据库已经接近100,000个具有出色性能的表.
正如Rob Guinness所提到的,.frm文件的开销很大.同样重要的是要注意,对information_schema的任何查询都没有对模式的限制,如果可能的话,表本身将在查询运行时导致严重的性能损失.
小智 5
这是来自MySql的官方答案: https ://dev.mysql.com/doc/refman/8.0/en/database-count-limit.html
8.4.5 数据库和表的数量限制
MySQL 对数据库数量没有限制。底层文件系统可能对目录数量有限制。
MySQL 对表的数量没有限制。底层文件系统可能对表示表的文件数量有限制。各个存储引擎可能会施加特定于引擎的约束。InnoDB 允许最多 40 亿个表。
| 归档时间: |
|
| 查看次数: |
16656 次 |
| 最近记录: |