包含数百万个表的数据库

wgmfuz8q  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(384)

我经常读到一些mysql数据库,当数据库中存在一定数量的表时,这些数据库的性能会很差。我的问题是,我的系统的所有用户都能够创建一个练习,并且每个练习都存储为一个额外的表。理论上讲,5年后可能会有超过100000甚至2000000张表存在。这是mysql系统的问题吗?有什么更好的方法来处理这个问题?

8yparm6h

8yparm6h1#

你可以做一个 trigger 在每一张table上使用。创建 active_tables 并在每次创建新表时输入日期和时间。同时创造一个 trigger 为了 select, update, delete OR schema modification 或者 any DML 操作并更新表中的修改时间 active_table 然后每天运行一个 CRON 作业删除所有的表,这是旧的,没有使用在过去6个月。

7rtdyuoh

7rtdyuoh2#

mysql本身对数据库或表的数量没有内置限制。但是,每个数据库将打开一个新目录,并且每个表可能在该目录中产生最多三个文件。如果您的系统不能有效地处理这一问题,您可能会在一段时间后面临问题。
我建议您在用户创建表时保留一个带有时间戳的表记录。一旦它们过时了,你就可以安全地把它们扔了。

相关问题