MySQL表数据超过1千万,数据表经常无缘无故损坏

多鱼的夏天 2008-08-25 11:35:41
MySQL表数据超过1千万,经常无缘无故损坏。数据表是MyISAM的。
MySQL数据库版本是5.0.51a,运行在Redhat AS4上。

错误日志中时常出现下边的提示:080825 9:01:46 [ERROR] /Data/apps/mysql5/libexec/mysqld: Table './download/source_userdown' is marked as crashed and last (automatic?) repair failed

每次repair大概要30分钟。

以前也试过INNODB,更可怕,因为INNODB不能repair。

...全文
715 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
hankwangwang 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 lnfmly 的回复:]
引用 15 楼 eroswang 的回复:
一个表的数据超过100w条之后,出现索引损坏是经常的事情

如果用户操作大部分是更新的话,最好是换用Innodb引擎,如果查询量比较大的话,还是用MyISAM好了,查询量再大一点,就考虑用cache挡住db的查询请求


请问怎么用cache挡住DB的查询请求呢?
[/Quote]

baidu一下memcache吧
hankwangwang 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 lnfmly 的回复:]
引用 8 楼 yueliangdao0608 的回复:
Use insert delayed instead of insert.


能举个例子吗?
比如一条完整的语句什么的。
[/Quote]

baidu一下一大堆的
lnfmly 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yueliangdao0608 的回复:]
Use insert delayed instead of insert.
[/Quote]

能举个例子吗?
比如一条完整的语句什么的。
lhp636_1 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 eroswang 的回复:]
一个表的数据超过100w条之后,出现索引损坏是经常的事情

如果用户操作大部分是更新的话,最好是换用Innodb引擎,如果查询量比较大的话,还是用MyISAM好了,查询量再大一点,就考虑用cache挡住db的查询请求

楼主一个表有1000w条数据,是否要考虑按照某种规则将数据“分库分表”,使一个表的数据尽量保持在100w条以内,一般100~1000个库,每个库100~1000个表
这样的话,一个表里才一点点的数据;如果数据量达到海量的话,…
[/Quote]

关注。这详细的简绍,学习
lnfmly 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 eroswang 的回复:]
一个表的数据超过100w条之后,出现索引损坏是经常的事情

如果用户操作大部分是更新的话,最好是换用Innodb引擎,如果查询量比较大的话,还是用MyISAM好了,查询量再大一点,就考虑用cache挡住db的查询请求
[/Quote]

请问怎么用cache挡住DB的查询请求呢?
hankwangwang 2008-09-18
  • 打赏
  • 举报
回复
一个表的数据超过100w条之后,出现索引损坏是经常的事情

如果用户操作大部分是更新的话,最好是换用Innodb引擎,如果查询量比较大的话,还是用MyISAM好了,查询量再大一点,就考虑用cache挡住db的查询请求

楼主一个表有1000w条数据,是否要考虑按照某种规则将数据“分库分表”,使一个表的数据尽量保持在100w条以内,一般100~1000个库,每个库100~1000个表
这样的话,一个表里才一点点的数据;如果数据量达到海量的话,可以考虑再分机器,分库,分表,这样就算再多的数据,也可以搞定

另外,在每天系统不繁忙的时候,最好执行一下表的检查,有索引损坏的,立即修复一下
如果更新操作也占用比较多的话,可以考虑楼上那位兄弟的建议,将不是非常重要的插入操作用,“insert delayed ”
utpcb 2008-09-11
  • 打赏
  • 举报
回复
Use insert delayed instead of insert.

MYSQL 就是这样子 稍微大一点访问多一点就会显示损坏
cuijie_cn 2008-09-11
  • 打赏
  • 举报
回复
关注ing
willko 2008-09-11
  • 打赏
  • 举报
回复
哈哈
yqsshr 2008-09-10
  • 打赏
  • 举报
回复
顶了,书上说MyISAM的安全性没有InooDB好,用InooDB还不行吗,看来实际问题还得实际解决,不能光学死书!
小雨转晴 2008-09-04
  • 打赏
  • 举报
回复
关注。。。
帮顶
zjx2388 2008-09-02
  • 打赏
  • 举报
回复
学习下

还没遇到过这样的问题

懒得去死 2008-08-28
  • 打赏
  • 举报
回复
Use insert delayed instead of insert.
多鱼的夏天 2008-08-28
  • 打赏
  • 举报
回复
innodb我也碰到过文件损坏的情况。都没有办法repair,只能用备份恢复了,丢了一些数据
hahajohn2006 2008-08-26
  • 打赏
  • 举报
回复
索引坏了。
很常见的问题
商科程序员 2008-08-26
  • 打赏
  • 举报
回复
innodb 一般来说是不会出现文件损坏的.
没遇到过.
wwwwb 2008-08-26
  • 打赏
  • 举报
回复
考虑用分区来存储表
多鱼的夏天 2008-08-26
  • 打赏
  • 举报
回复
硬件没有问题
WWWWA 2008-08-25
  • 打赏
  • 举报
回复
硬件没有问题吧?
WWWWA 2008-08-25
  • 打赏
  • 举报
回复
表有多大?用分区试试

56,677

社区成员

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

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