做网站一定要备案吗,如何建设网站和app,网上做一道题2元的网站,网站开发推广方案策划书拓展阅读
MySQL View
MySQL truncate table 与 delete 清空表的区别和坑
MySQL Ruler mysql 日常开发规范
MySQL datetime timestamp 以及如何自动更新#xff0c;如何实现范围查询
MySQL 06 mysql 如何实现类似 oracle 的 merge into
MySQL 05 MySQL入门教程#xff0…拓展阅读
MySQL View
MySQL truncate table 与 delete 清空表的区别和坑
MySQL Ruler mysql 日常开发规范
MySQL datetime timestamp 以及如何自动更新如何实现范围查询
MySQL 06 mysql 如何实现类似 oracle 的 merge into
MySQL 05 MySQL入门教程MySQL tutorial book
MySQL 04- EMOJI 表情与 UTF8MB4 的故事
MySQL Expression 1 of ORDER BY clause is not in SELECT list,references column
truncate 的问题
以前使用 delete from感觉耗时较多所以就采用了 truncate。
后来发现阻塞读本篇简单记录下采坑之路。
truncate 的阻塞原理
truncate 应慎重它属于ddl会lock table meta data甚至可能由锁表升级为锁库
5.7 及其以前
In MySQL 5.7 and earlier, on a system with a large buffer pool and innodb_adaptive_hash_index enabled, a TRUNCATE TABLE operation could cause a temporary drop in system performance due to an LRU scan that occurred when removing the tables adaptive hash index entries (Bug #68184). The remapping of TRUNCATE TABLE to DROP TABLE and CREATE TABLE in MySQL 8.0 avoids the problematic LRU scan.
这个会导致阻塞
8.0
参考文档会将 truncate 调整为 dropcreate。
中间过程会导致问题。
实际上 drop 也是有会阻塞查询的。
drop 阻塞读
drop table引起的MySQL 短暂hang死的问题是由于drop 一张使用AHI空间较大的表时调用执行AHI的清理动作会消耗较长时间执行期间长时间持有dict_operation_lock的X锁阻塞了其他后台线程和用户线程;
drop table执行结束锁释放MySQL积压的用户线程集中运行出现了并发线程和连接数瞬间上升的现象。规避问题的方法可以考虑在drop table前关闭AHI。
ps: AHI 是自适应 HASH 索引一种优化策略。
参考资料
mysql 8.0 官方文档
stackoverflow-MySQL TRUNCATE TABLE blocks queries in other databases
mysql案例 ~ 关于drop的那点事
记一次truncate导致的锁表处理
mysql 中的三种锁表方式
MySQL的TRUNCATE关键字
MySQL DROP 大表时的注意事项
MySQL AHI 实现解析