MySQL 版本:5.1.63。
我即将删除一个更大的 ~8 GB InnoDB 表。上周,我在另一台机器上删除了一个大四倍的表,全局锁启动,导致我们停机约 90 秒。我怀疑这与table_cache
锁。有谁能提供关于如何让这次 DROP 更加顺利的建议吗?首先小批量删除,然后删除TRUNCATE
它,最后删除一个DROP TABLE
?显然,如果可能的话,我希望将此数据库保留在生产中。我还一直在考虑在删除之前将缓冲池缩小。
我很乐意听取您的意见。
答案1
DROP TABLE
总是需要一些全局锁。我会按照你在问题中描述的方式去做:尽可能快地删除行(不要过多地扰乱磁盘 IO 和各种缓存,也要小心复制),然后删除它。