我经常读到一些mysql数据库,当数据库中存在一定数量的表时,这些数据库的性能会很差。我的问题是,我的系统的所有用户都能够创建一个练习,并且每个练习都存储为一个额外的表。理论上讲,5年后可能会有超过100000甚至2000000张表存在。这是mysql系统的问题吗?有什么更好的方法来处理这个问题?
8yparm6h1#
你可以做一个 trigger 在每一张table上使用。创建 active_tables 并在每次创建新表时输入日期和时间。同时创造一个 trigger 为了 select, update, delete OR schema modification 或者 any DML 操作并更新表中的修改时间 active_table 然后每天运行一个 CRON 作业删除所有的表,这是旧的,没有使用在过去6个月。
trigger
active_tables
select, update, delete OR schema modification
any DML
active_table
CRON
7rtdyuoh2#
mysql本身对数据库或表的数量没有内置限制。但是,每个数据库将打开一个新目录,并且每个表可能在该目录中产生最多三个文件。如果您的系统不能有效地处理这一问题,您可能会在一段时间后面临问题。我建议您在用户创建表时保留一个带有时间戳的表记录。一旦它们过时了,你就可以安全地把它们扔了。
2条答案
按热度按时间8yparm6h1#
你可以做一个
trigger
在每一张table上使用。创建active_tables
并在每次创建新表时输入日期和时间。同时创造一个trigger
为了select, update, delete OR schema modification
或者any DML
操作并更新表中的修改时间active_table
然后每天运行一个CRON
作业删除所有的表,这是旧的,没有使用在过去6个月。7rtdyuoh2#
mysql本身对数据库或表的数量没有内置限制。但是,每个数据库将打开一个新目录,并且每个表可能在该目录中产生最多三个文件。如果您的系统不能有效地处理这一问题,您可能会在一段时间后面临问题。
我建议您在用户创建表时保留一个带有时间戳的表记录。一旦它们过时了,你就可以安全地把它们扔了。