快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

云顶2322备用网址:Mysql处理未被适当关闭的表的所出现的问题



每个MyISAM索引文件(.MYI)在头有一个计数器,它可以被用来反省一个表是否被恰当地关闭。假如你从CHECK TABLE或myisamchk获得下列警告,意味着云顶2322备用网址这个计数器已经不合步了:

clients ar云顶2322备用网址e using or haven't closed the table proPerly

这个警告并不是完全意味着表已被破坏,但你至少应该反省表。

计数器的事情要领如下:

· 表在MySQL中第一次被更新,索引文件头的计数器加一。

· 在未来的更新中,计数器不被改变。

· 当表的着末实例被关闭(由于一个操作FLUSH TABLE或由于在表缓冲区中没有空间)之时,若表已经在任何点被更新,则计数器减云顶2322备用网址一。

· 当你修理或反省表并且发明表齐全之时,计数器被重置为零。

· 要避免与其它可能反省表的进程进行事务的问题,若计数器为零,在关闭时计数器不减一。

换句话来说,计数器只有鄙人列环境会不合步:

· MyISAM表不随第一次发出的LOCK TABLES和FLUSH TABLES被复制。

· MySQL在一次更新和着末关闭之间崩溃(留意,表可能依然齐全,由于MySQL老是在每个语句之间为每件事发出写操作)。

· 一个表被myisamchk --recover或myisamch云顶2322备用网址k --update-state改动,同时被mysqld应用。

· 多个mysqld办事器正应用表,并且一个办事器在一个云顶2322备用网址表上履行REPAIR TABLE或CHECK TABLE,同时该表也被另一个办事器应用。在这个布局中,应用CHECK TABLE是安然的,虽然你可能从其它办事器上获得警告。只管如斯,REPAIR TABLE应该被避免,由于当一个办事器用一个新的数据文件替代旧的之时,这并没有发送旌旗灯号到其它办事器上。

总的来说,在多办事器之间分享一个数据目录是一个坏主见。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: