在MySQL数据库中,数据表数以百计,数据库管理员不可能有这么多的时间和精力去依次检查表的有效性,所以他们急需要一种工具,能够对相关的数据表进行体检,以判断表是否存在一些问题。这就好像我们每年都需要体检一样,发现小问题,即时进行修复,以免到时候病入膏肓。在这里为大家推荐的工具是Myisamchk,使用这个工具来对数据表进行不定期的检查。在使用这个工具时,笔者要强调一下相关的注意事项以及使用技巧。

一、大表要增加内存的容量

Myisamchk工具的使用效率主要跟表的大小有关。如果数据表比较大,则其运行的速度就会比较慢。在这种情况下,数据库管理员可能需奥调整内存的配置。

通常情况下,-O参数决定Myisamchk工具运行时所能够使用的内存大小。当运行Myisamchk时内存分配给其使用的空间不能够超过这个参数所指定的大小。如果数据库管理员需要对每一个大表使用Myisamchk工具时,往往需要首先确定这个数据表的大小,并依此判断所需要占用内存的大小。默认情况下,恢复时可以采用的内存大小只有3M。对于大表来说,这点内存是不够的。此时数据库管理员可以调整内存的大小,让Myisamchk工具运行的更快一点。

如果有需要的话,可以使用-O参数将内存调整为合适的大小。如-O sort=8M等等。一般情况下,这个值设置为16M即可。不需要太大,否则的话,会影响其它作业的运行。总之,在运行Myisamchk工具之前,数据库管理员先需要评估一下数据库中各个数据表的大小。如果有比较大的数据表,可以先将其过滤出来(如通过通配符等形式)。然后再调整内存的大小,并单独对这些大表进行检查。这是提高Myisamchk运行效率的一个不错的办法。

二、利用Myisamchk工具恢复数据时需要大量的硬盘空间

在使用Myisamchk检查数据表时,如果发现某些表存在问题,还可以使用Myisamchk这个工具对其进行恢复。不过在恢复时,需要先确保有足够的硬盘空间。否则的话,就可能导致数据表恢复失败。

通常情况下,所需要使用的硬盘空间是数据表的一倍大小。即如果需要对2G的数据表进行恢复,那么所需要的剩余空间至少应该还有2G。即需要将数据文件大小扩大为原来的一倍。如果硬盘空间不足,该怎么办呢?此时数据库管理员可以考虑使用—quick选项。使用这个选项之后,进行修复时就不需要这么多的空间。不过需要注意,此时数据库系统只是创建了索引文件。

在某些情况下,在修复时需要重新创建索引文件。此时代替旧索引文件的新索引文件也需要占用一定的磁盘空间。虽然说在修复工作一开始的时候,数据库系统就会对就索引文件进行删减。但是为了安全起见,笔者还是建议为其保留足够的硬盘空间。并且在文件系统上所需要的这个存储空间的大小与原数据文件是相同的。

另外在使用Myisamchk这个工具时,数据库管理员可能会使用—Recover选项。如果数据库管理员采用这个选项的话,那么就可以修复几乎所有一切的问题。不过注意这里有一个关键字几乎。这也就是说,大部分数据表问题都可以通过这个选项来解决。但是也有一些例外。如当遇到唯一的键不唯一等问题时,即时采用这个选项也是没有办法。一般情况下,数据库管理员在恢复工作时可以先试用这个选项。当系统报告这个选项不可用时,再尝试使用另外的恢复方式。不过需要注意的是,使用这个选项时需要用到排序缓冲区空间。大致大小一般为数据的2倍。

综上所述,在利用Myisamchk这个工具对表进行恢复操作时,需要保证其有足够的磁盘空间。笔者的建议时,至少要有两倍以上的数据文件大小的磁盘空间。

21/212>

isamchk mysql_利用Myisamchk对MySQL数据表进行体检相关推荐

  1. 利用Shell将MySQL数据表导出为csv文件

    完整的Shell代码如下: #!/bin/bash MYSQL=`which mysql`#show databases in mysql echo "database in mysql:& ...

  2. 非法关机 mysql_一次非法关机导致mysql数据表损坏的实例解决 -电脑资料

    排查修复数据表的经过: 2.启动mysql服务,卸载和关闭rpm安装的mysql服务 (昨天安装postfix好像yum安装了mysql),用netstat -anp |grep mysqld 命令查 ...

  3. 怎么样查看视图+mysql_如何查询mysql数据表中的视图

    本篇文章主要给大家介绍怎么查询mysql数据表中的视图. 想必大家如果有看过之前的mysql视图相关的文章,都已经对视图的基本概念有一定的了解了.视图也就是是一个虚拟表,其内容由查询定义.同真实存在数 ...

  4. mysql表损坏自动修复工具_对MySQL数据表(已损坏)的修复

    以下的文章主要讲述的是如何正确修复已损坏的MySQL数据表,主要是了两种方法,一种是check table与 repair table ,一种是通过myisamchk, isamchk ,于断电或非正 ...

  5. 修复表mysql代码_怎么修复损坏的MySQL数据表

    如何修复损坏的mysql数据表 于断电或非正常关机而导致MySQL数据库出现错误是非常常见的问题.有两种方法,一种方法使用mysql的check table和repair table 的sql语句,另 ...

  6. mysql数据表数据丢失6_MYSQL数据表损坏的原因分析和修复方法小结

    MYSQL数据表损坏的原因分析和修复方法小结 1.表损坏的原因分析 以下原因是导致mysql 表毁坏的常见原因: 1. 服务器突然断电导致数据文件损坏. 2. 强制关机,没有先关闭mysql 服务. ...

  7. Mysql数据表一直显示使用中

    做网站难免要操作数据库,有时候不知什么原因数据库就会出现一些问题.比如一个常见的Mysql数据表一直显示使用中,该如何修复处理? 方法一: 重启动mysql,简单,一般会有效. 方法二: 运行SQL语 ...

  8. mysql数据表损坏的常见原因是_MYSQL数据表损坏的分析

    MYSQL数据表损坏的分析 MYSQL 数据表损坏的分析<1.0>作 者: 王黎晓 完成日期: 2006-12-20 修改情况记录:版本号 修改人 修改日期 审核人 批准人 备注1.0-d ...

  9. MySQL 数据表主键设计,选择自增 id 还是 UUID 还是雪花 id?

    在 MySQL 数据表的设计中,官方推荐我们不要使用 UUID 或者其他不连续不重复的 id,而是推荐使用连续自增的主键 id(auto_increment). 随着现在许多项目都涉及到了分布式或者微 ...

最新文章

  1. 1136 A Delayed Palindrome
  2. 深入理解分布式技术 - 分布式缓存总结回顾
  3. YbtOJ#20073-[NOIP2020模拟赛B组Day6]钻石守卫【构造】
  4. 如何通过鸿蒙生态赚钱?
  5. 利用ping/ipconfig/nslookup/dig/whois简单工具测试DNS
  6. MySQL统计两部分查询结果记录数量比值
  7. 换个红圈1微信头像恶搞一下好友
  8. jQuery子窗体取得父窗体的元素
  9. 第三百九十一节,Django+Xadmin打造上线标准的在线教育平台—404,403,500页面配置...
  10. 有序表的最小和(element)
  11. 热血江湖Java_热血江湖源码+教程
  12. 数据库 sqlserver实现插入随机姓名性别民族
  13. 华为云学院-人人学loT学习笔记及扩展- 第一章 初识物联网
  14. 两线怎么接三线插座图_三线插座怎么接两线
  15. 中职升高职c语言程序设计教程课后答案,锦职业技术学院2020年单独招生计算机应用技术专业技能测试考试大纲(中职升高职)...
  16. 如何使用Delphi 10 Seattle的Android应用做Intent的发送和接收
  17. Docker容器总结
  18. 电商生鲜网站开发(三)——后台开发:商品分类模块-Redis/Swagger/统一身份校验/IDEA技巧
  19. 【opencv】获取视频中的“黑白蓝绿”屏
  20. 利用Python分析文章词频,并生成词云图

热门文章

  1. java 内存泄漏_Java开发者必须知道的内存泄漏问题
  2. 2-Qt6命令行控制台项目
  3. mysql 数据迁移_mysql实验--不同字符集数据库迁移步骤演示
  4. 怎么添加本地音乐_网易云音乐:60G免费云盘+隐藏彩蛋、技巧
  5. 苹果8怎么投屏到电视_创维电视怎么投屏
  6. js控制复选框选中显示不同表单_Vue之 表单
  7. php dingo和jwt,Laravel实现dingo+JWT api接口之配置篇
  8. python ip动态代理_Scrapy 配置动态代理IP的实现
  9. nebula注释符号
  10. AC自动机的使用案例