早上到公司,刚准备吃早餐,手机响了,一看是服务器自动重启了。好吧,准备修复数据吧。游戏服的游戏日志使用的是MyISAM。众所周知,MyISAM表在服务器意外宕机或者mysqld进程挂掉以后,MyISAM表会损坏,数据小的话修复还比较快,但是数据如果有10G以上,那就悲剧了。那我们如何加快repair table快速高效执行呢?下面我们来看看解决方法。

REPAIR TABLE用于修复被破坏的表。默认情况下,REPAIR TABLE与myisamchk --recover tbl_name具有相同的效果。REPAIR TABLE对MyISAM和ARCHIVE表起作用。

通过修改相关参数,提高repair table的效率:

[mysqld]
myisam_sort_buffer_size=1G
key_buffer_size=1G
myisam_max_sort_file_size=100G

myisam_sort_buffer_size  

在REPAIR TABLE过程中,或通过CREATE INDEX/ALTER TABLE为MyISAM表添加索引时为了对索引排序所能够使用的缓冲空间大小。最小值为4,32位系统上所能够使用的最大值为4294967295,即4G;64位系统上可以使用更大的空间。作用范围为全局或会话级别,可用于配置文件,属动态变量。

myisam_max_sort_file_size   

设定在MySQL在使用REPARE TABLE、ALTER TABLE或LOAD DATA INFILE命令时为MyISAM表重新创建索引所能够使用的临时文件的体积上限,单位是字节。如果临时文件的大小大过了此上限值,则mysqld会使用key cache创建索引。默认值是2G,而如果MyISAM索引文件本身大过此值且其所在的文件系统有足够的空闲空间,增大此值会提升MySQL性能。作用范围为全局级别,可用于配置文件,属动态变量。

参考资料:

http://dev.mysql.com/doc/refman/5.5/en/repair-table-speed.html

如何快速REPAIR TABLE的更多相关文章

  1. mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)

    随着mysql的长期使用,可以修复表来优化,优化时减少磁盘占用空间.方便备份. REPAIR TABLE `table_name` 修复表 OPTIMIZE TABLE `table_name` 优化 ...

  2. mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)

    REPAIR TABLE `table_name` 修复表 OPTIMIZE TABLE `table_name` 优化表 show create table tablename   表结构 REPA ...

  3. mysql之repair table 修复表札记

    REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE   tbl_name[,tbl_name] ... [QUICK] [EXTENDED] [USE_FRM] REP ...

  4. MySQL check table/optimize table/analyze table/REPAIR TABLE

    MySQL check table/optimize table/analyze table/REPAIR TABLE 转自:https://www.cnblogs.com/datastack/p/3 ...

  5. repair table

    mysql> show create table lixl;+-------+---------------------------------------------------------- ...

  6. refresh table tablename ;MSCK REPAIR TABLE table_name;

    在更改分区内的文件后刷新表 refresh table tablename ; 我们平时通常是通过alter table add partition方式增加Hive的分区的,但有时候会通过HDFS p ...

  7. HIVE常用命令之MSCK REPAIR TABLE

    MSCK REPAIR TABLE命令主要是用来解决通过hdfs dfs -put或者hdfs api写入hive分区表的数据在hive中无法被查询到的问题.我们知道hive有个服务叫metastor ...

  8. mysql下优化表和修复表命令(repair table、optimize table)

    随着mysql的长期使用,肯定会出现一些问题,一般情况下mysql表无法访问,就可以修复表了,优化时减少磁盘占用空间,方便备份. repair table table_name //修复表 optim ...

  9. 5.1中repair table

    mysql> repair table xs;+---------+--------+----------+----------+| Table | Op | Msg_type | Msg_te ...

随机推荐

  1. Java关键字-----------------java中synchronized关键字的用法

    在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法. 因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识. j ...

  2. Java 8 StampedLock解决同步问题

    Java 8新特性探究(十)StampedLock将是解决同步问题的新宠 JDK8中StampedLock原理探究 深入理解StampedLock及其实现原理 JDK1.8 StampedLock源码 ...

  3. IDEA的这八条配置你一定要改!

    一定要改的八条军规.快捷键使用idea默认的,与其他同事保存一致 自动编译开关 忽略大小写开关 智能导包开关 悬浮提示开关 取消单行显示tabs的操作 项目文件编码 滚轴修改字体大小 设置行号显示 在 ...

  4. json 字符串包含数组转换为object对象是报异常java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to

    前台传到后台的json字符串 前台实现这种格式json字符串方式: function contentFun(){ respType = respTypeFun(); return "{\&q ...

  5. #Java学习之路——基础阶段二(第十篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  6. 【NPM】设置代理

    https://yutuo.net/archives/c161bd450b2eaf88.html npm config set proxy http://server:port npm config ...

  7. Inside The C++ Object Model(一)

    ============================================================================1-1. 关键字struct和class的一点区 ...

  8. puppet cron资源管理

    1.可用参数: ensure      ensure => {present|absent},   决定该计划任务的目标状态,present 如该cron不存在,则添加;absent 如该cro ...

  9. 【CF944G】Coins Exhibition DP+队列

    [CF944G]Coins Exhibition 题意:Jack去年参加了一个珍稀硬币的展览会.Jack记得一共有 $k$ 枚硬币,这些硬币排成一行,从左到右标号为 $1$ 到 $k$ ,每枚硬币是正 ...

  10. tomcat使用同一个http端口如何配置多个web项目?

    1. 在server.xml中 如下配置: <Host name="localhost" appBase="webapps2" unpackWARs=&q ...