回收mysql表碎片_回收mysql表的碎片

由于操作人员大量的删除了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@]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值