1. 程式人生 > >MySQL--DROP TABLE與MySQL版本

MySQL--DROP TABLE與MySQL版本

dev 之前 ada lar innodb 直接 doc 物理內存 mov

========================================================================

DROP TABLE與MySQL版本

MySQL在5.5版本中引入自適應hash索引,用於提升經常訪問的數據頁的性能,在刪除表時,需要先通過掃描LRU鏈表找到該表在自適應hash索引使用的數據頁,將這些數據從自適應hash索引中刪除。如果為MySQL實例配置較多的物理內存,掃描自適應hash索引的LRU鏈表可能會導致數據庫性能異常甚至數據庫Crash。 MySQL 5.7版本的官方文檔如下描述:
On a system with a large InnoDB buffer pool and innodb_adaptive_hash_index enabled,TRUNCATE TABLE operations may cause a temporary drop in system performance due to an LRU scan that occurs when removing an InnoDB table‘s adaptive hash index entries.
The problem was addressed for DROP TABLE in MySQL 5.5.23 (Bug #13704145, Bug #64284) but remains a known issue for TRUNCATE TABLE (Bug #68184).
對MySQL 5.6之前版本,建議使用TRUNCATE TABLE+DROP TABLE來代替直接DROP TABLE。
對MySQL 5.6及之後版本,建議直接使用DROP TABLE來刪除表。
參考鏈接:
https://dev.mysql.com/doc/refman/5.7/en/truncate-table.html
https://yq.aliyun.com/articles/570032?spm=a2c4e.11155435.0.0.234e998bdGFhGB

MySQL--DROP TABLE與MySQL版本