暂无图片
mysql中数据表DATA_LENGTH比INDEX_LENGTH小
我来答
分享
M
msg
2020-12-03
mysql中数据表DATA_LENGTH比INDEX_LENGTH小

今天mysql内存爆满,找到对应的表,检查表空间,发现DATA_LENGTH比INDEX_LENGTH小,INDEX_LENGTH值为DATA_LENGTH值的一倍,内存一直爆满

我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
Cui Hulong

1.MySQL删除数据是不释放空间的,统计信息本身不准确。
2.analyze table table_name 试一下看看
3.可以通过一些工具进行分析https://github.com/johnliu2008/py_innodb_page_info
4.内存爆满需要具体分析

暂无图片 评论
暂无图片 有用 0
打赏 0
M
msg

由于是新项目,基本都会只会读写一张表,目前删除了全文索引,但是索引大小还是大过数据量

暂无图片 评论
暂无图片 有用 0
打赏 0
M
msg

DATA_LENGTH:4687118336
INDEX_LENGTH:5471338496
DATA_FREE:4194304
对于DATA_FREE这空间的清除,好像到底上限,没办法清除为空

暂无图片 评论
暂无图片 有用 0
打赏 0
Cui Hulong

按照这个情况 可以alter table engine 试下。
或则弄个新的表 数据insert 看看。
注意:可以在从库上执行 sql_log_bin开启 ,不记录日志

暂无图片 评论
暂无图片 有用 0
打赏 0
M
msg

重新复制了表,把原始表的数据导进去,在进行ALTER TABLE tmo ENGINE=InnoDB跟analyze table tmp;,结果跟之前一样
DATA_LENGTH:4687118336
INDEX_LENGTH:5471338496
DATA_FREE:4194304

暂无图片 评论
暂无图片 有用 0
打赏 0
Cui Hulong

看情况得把ibd文件分析一下https://github.com/johnliu2008/py_innodb_page_info

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏