具有数百万个表的数据库

时间:2018-08-05 10:49:08

标签: mysql database database-design database-schema

我经常读到有关MySQL数据库的信息,这些数据库在数据库中存在一定数量的表时性能不佳。 我的问题是系统中的所有用户都可以创建一个练习,而每个练习都存储为一个额外的表。从理论上讲,五年后可能会存在超过100,000个甚至2,000,000个表。 这对MySQL系统来说是个问题吗?有什么更好的方法来解决这个问题?

2 个答案:

答案 0 :(得分:2)

MySQL本身does not have a built-in limit关于数据库或表的数量。但是,每个数据库将打开一个新目录,每个表可能在该目录中最多包含三个文件。如果您的系统无法有效处理该问题,则一段时间后您可能会遇到问题。

我建议您在由用户创建表时保留带有时间戳的表的记录。然后,可以在它们过时后将其安全放下。

答案 1 :(得分:1)

您可以在每次使用表时使用trigger。创建一个active_tables表,并在每次创建新表时都使用日期和时间进行输入。然后为triggerselect, update, delete OR schema modification操作创建一个any DML并在active_table中更新表修改时间,然后每天运行一次CRON作业以删除所有过去6个月内未使用过的旧桌子。