在线等,mysql的isam表频繁损坏

boman258 2009-05-05 11:47:50
我有两个进程使用嵌入式mysql访问同一个数据库,经常发生表损坏的情况,使用check table命令能看到conrrupt,为什么会产生表损坏的情况?怎样避免发生这种情况?硬盘剩余空间足够。
...全文
135 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2009-05-05
  • 打赏
  • 举报
回复

MyISAM损坏的可能原因:

mysqld进程在写中间被杀掉。
发生未预期的计算机关闭(例如,计算机被关闭)。
硬件故障。
同时在正被服务器修改的表上使用外部程序(如myisamchk)。

你可以参考一下MySQL的官方手册。
http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html#myisam-table-problems
15.1.4. MyISAM表方面的问题
15.1.4.1. 损坏的MyISAM表
15.1.4.2. 未被适当关闭的表的问题



boman258 2009-05-05
  • 打赏
  • 举报
回复
网上有人说可以增加临时表的大小来避免这个问题,怎样增加临时表的大小?
我的ini文件如下:
[EmbedMySql]
datadir = ./sqldb
language = ./sqldb
skip-innodb
port=3306

[libmysqld_client]
language = ./sqldb
port=3306
ACMAIN_CHM 2009-05-05
  • 打赏
  • 举报
回复

查看一下错误日志中的信息。
ACMAIN_CHM 2009-05-05
  • 打赏
  • 举报
回复

我同时只有两个进程在读写这张表,而且在读写之前都加上了进程锁

如果只是这样,应该不会,应该有其它原因。
boman258 2009-05-05
  • 打赏
  • 举报
回复
'quote.t_symbol', 'check', 'warning', 'Size of datafile is: 235516 Should be: 203096'
'quote.t_symbol', 'check', 'warning', 'Found 39280 deleted space. Should be 0'
'quote.t_symbol', 'check', 'warning', 'Found 68 deleted blocks Should be: 0'
'quote.t_symbol', 'check', 'warning', 'Found 4733 key parts. Should be: 5008'
'quote.t_symbol', 'check', 'status', 'OK'

这是check出来的结果
boman258 2009-05-05
  • 打赏
  • 举报
回复
我同时只有两个进程在读写这张表,而且在读写之前都加上了进程锁,这样还会损坏表,就太让我失望了,难道mysql的稳定性这么差吗?

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧