MySQL 版本:5.1.63。
我即将 DROP 一个更大的 ~8 GB InnoDB 表。上周我在另一台机器上丢了一个四倍大的桌子,一个全局锁启动了,让我们宕机了大约 90 秒。我怀疑它与table_cache
锁有关。有人对如何使这个 DROP 更顺畅有意见吗?首先是小批量删除,然后TRUNCATE
是它,最后是DROP TABLE
?显然,如果可能的话,我想保持这个数据库在生产中。我也一直在考虑在下降之前使缓冲池更小。
我很想听听你的意见。
MySQL 版本:5.1.63。
我即将 DROP 一个更大的 ~8 GB InnoDB 表。上周我在另一台机器上丢了一个四倍大的桌子,一个全局锁启动了,让我们宕机了大约 90 秒。我怀疑它与table_cache
锁有关。有人对如何使这个 DROP 更顺畅有意见吗?首先是小批量删除,然后TRUNCATE
是它,最后是DROP TABLE
?显然,如果可能的话,我想保持这个数据库在生产中。我也一直在考虑在下降之前使缓冲池更小。
我很想听听你的意见。
DROP TABLE
总是需要一些全局锁。我会按照您在问题中描述的那样做:尽可能快地删除行(不要过多地破坏磁盘 IO 和各种缓存,也要小心复制),然后删除它。