MySQL表数据超过1千万,经常无缘无故损坏。数据表是MyISAM的。
MySQL数据库版本是5.0.51a,运行在Redhat AS4上。错误日志中时常出现下边的提示:080825  9:01:46 [ERROR] /Data/apps/mysql5/libexec/mysqld: Table './download/source_userdown' is ed as crashed and last (automatic?) repair failed每次repair大概要30分钟。以前也试过INNODB,更可怕,因为INNODB不能repair。

解决方案 »

  1.   

    innodb 一般来说是不会出现文件损坏的.
    没遇到过.
      

  2.   

    innodb我也碰到过文件损坏的情况。都没有办法repair,只能用备份恢复了,丢了一些数据
      

  3.   

    Use insert delayed instead of insert.
      

  4.   

    顶了,书上说MyISAM的安全性没有InooDB好,用InooDB还不行吗,看来实际问题还得实际解决,不能光学死书!
      

  5.   

    Use insert delayed instead of insert.
    MYSQL 就是这样子 稍微大一点访问多一点就会显示损坏
      

  6.   

    一个表的数据超过100w条之后,出现索引损坏是经常的事情如果用户操作大部分是更新的话,最好是换用Innodb引擎,如果查询量比较大的话,还是用MyISAM好了,查询量再大一点,就考虑用cache挡住db的查询请求楼主一个表有1000w条数据,是否要考虑按照某种规则将数据“分库分表”,使一个表的数据尽量保持在100w条以内,一般100~1000个库,每个库100~1000个表
    这样的话,一个表里才一点点的数据;如果数据量达到海量的话,可以考虑再分机器,分库,分表,这样就算再多的数据,也可以搞定另外,在每天系统不繁忙的时候,最好执行一下表的检查,有索引损坏的,立即修复一下
    如果更新操作也占用比较多的话,可以考虑楼上那位兄弟的建议,将不是非常重要的插入操作用,“insert delayed ”
      

  7.   


    请问怎么用cache挡住DB的查询请求呢?