博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
回收mysql表的碎片
阅读量:2429 次
发布时间:2019-05-10

本文共 963 字,大约阅读时间需要 3 分钟。

由于操作人员大量的删除了relationship表的数据达2千万行,但是mysql并不自动回收空间,所以决定做碎片整理(先测试):

myisamchk -r relationship

我是在mysql运行下做的,结果做完后查询的时候出现下面的问题:

ERROR 1030 (00000): Got error 127 from table handler

这个问题很郁闷,应该不会出现问题的呀,后来查阅资料发现了问题():

如果你用--skip-locking运行mysqld(它在一些系统上是缺省的,如Linux),当

mysqld正在使用同一个表时,你不能可靠地使用myisamchk检查一张表。如果你能
肯定在你运行myisamchk时没有人通过mysqld正在存取表,在你开始检查表之前,
你仅需做mysqladmin flush-tables。如果你不能保证, 那么当你检查表时,你必
须停掉mysqld。如果你在mysqld正在更新表时运行myisamchk,你可能得到一个表
已破坏的警告,即使它没有。

如果你没使用--skip-locking,你能在任何时间使用myisamchk检查表。当你这样

时,所有试图更新表的客户在继续前将等到myisamchk就绪。

如果你使用myisamchk修复或优化表,你必须总是保证mysqld服务器不在使用表(如

果你正在使用--skip-locking,这也适用)。如果你不停掉mysqld,在你运行
myisamchk前,你至少应该做一个mysqladmin flush-tables。

而我的数据库恰好在linux下,并且是skip-locking启动的,就出现了这个问题!

1)这个命令也可以停止mysql后再做,就不会出现这个问题

2)也可以在线做后重启数据库

3)也可以先运行mysqladmin flush-tables后再执行这个命令,也不会出现这个问题!

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7916042/viewspace-893081/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7916042/viewspace-893081/

你可能感兴趣的文章
王者又连跪了?快让 AI 帮你上分!
查看>>
1 分钟带你认识从 "�" 到 "锟斤拷"
查看>>
3 年培养 10 万“码农”,郑州推出“码农计划”
查看>>
一个三本程序猿的大厂逆袭之路
查看>>
程序员弃码投中医?还做成了不错的生意! | 极客视频
查看>>
百度一 29 岁程序员因“篡改数据”被抓
查看>>
去年我年薪 30W,今年我一天做 3 顿饭
查看>>
入职大厂,我容易吗?
查看>>
《互联网人退化简史》
查看>>
CTO 写的低级 Bug 再致网站被黑,CEO 的号都被盗了!
查看>>
955 加班少的公司名单来了!
查看>>
狂赚 1227 亿!腾讯员工 2020 年人均年薪 81 万;小米员工人均年薪 45 万
查看>>
漫画:什么是加密算法?
查看>>
程序员有话说 |当那个不靠谱的程序员跟我做同一个项目时
查看>>
怎样以程序员的方式来用百度呢?
查看>>
程序员是如何运用增长思维找到女朋友?
查看>>
@程序员,离职让企业损失近900亿,还遭疯抢!他凭什么?
查看>>
如何用 Python 一键查房价?
查看>>
累死累活干不过写 PPT 的?新东方年会吐槽视频俞敏洪不罚反奖 12 万!
查看>>
“离开360时,它只给了我一块钱”
查看>>