wamp在网站建设中的功能及协作关系站长工具排名查询
wamp在网站建设中的功能及协作关系,站长工具排名查询,网站推广系统方案,网站菜单框架为什么产生#xff1f;
经过大量增删改的表#xff0c;都可能存在碎片
MySQL数据结构是B树#xff0c; 删除某一记录#xff0c;只会标记为删除#xff0c;后续插入一条该区间的记录#xff0c;就会复用这个位置。 删除整个数据页的记录#xff0c;则整个页标记为“可…为什么产生
经过大量增删改的表都可能存在碎片
MySQL数据结构是B树 删除某一记录只会标记为删除后续插入一条该区间的记录就会复用这个位置。 删除整个数据页的记录则整个页标记为“可复用”但磁盘文件的大小是不会变的。
产生碎片就要定期清理
官方建议不要频繁(每小时或每天)进行碎片整理一般根据实际情况只需要每周或者每月整理一次即可。 建议碎片空间大或者占比50% 再做整理。
# 查询现状碎片情况
SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS, AUTO_INCREMENT, TABLE_COMMENT, DATA_FREE, ROUND(data_free / 1024 / 1024 / 1024, 2) AS free_G
FROM information_schema.tables
WHERE 1 1AND TABLE_SCHEMA NOT IN (information_schema, mysql)
HAVING free_G 1
ORDER BY DATA_FREE DESC
LIMIT 10;如何清理
官方做法
ALTER TABLE tbl_name ENGINEINNODBYou can also use ALTER TABLE tbl_name FORCE to perform a “null” alter operation that rebuilds the table.
会重建表这个过程会不会锁表影响数据读写
搜集相关知识有人提供方案
ALTER TABLE tbl_name ENGINEINNODB, ALGORITHMINPLACE锁表时间很短几乎不影响业务读写属于Online DDL 详情参考资料3 至于 inplace 和 copy 的差异简单来讲 copy 基于临时表锁表时间长容易丢数据 inplace 基于临时文件,锁表时间短不易丢数据。 那么需要指定 ALGORITHM 吗 搜索MySQL官方文档发现 The ALGORITHM clause is optional. If the ALGORITHM clause is omitted, MySQL uses ALGORITHMINPLACE for storage engines and ALTER TABLE clauses that support it. Otherwise, ALGORITHMCOPY is used. 不指定ALGORITHM的情况下如果alter语句支持 inplace,就使用inplace,否则就用copy 哪些表操作支持呢
官方给了回答 所以整理碎片 直接执行即可
ALTER TABLE tbl_name ENGINEINNODB开源工具
除了mysql官方的实现方式业界也有一些知名开源工具解决大表的变更gh-ost就是一例。
关键步骤如下详细点击 创建影子表 存量数据同步 增量数据同步-by binLog 锁表更换表名 删除原表 参考资料
MySQL整理碎片MySQL Online DDLmysql重建表mysql在线修改表结构的影响 -MySQL Online DDL工具gh-ostgh-ost漏洞
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/86611.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!