返回顶部
首页 > 资讯 > 数据库 >如何利用Myisamchk对MySQL数据表进行体检
  • 195
分享到

如何利用Myisamchk对MySQL数据表进行体检

2024-04-02 19:04:59 195人浏览 安东尼
摘要

本篇内容介绍了“如何利用Myisamchk对Mysql数据表进行体检”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学

本篇内容介绍了“如何利用Myisamchk对Mysql数据表进行体检”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

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

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

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

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

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

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

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

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

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

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

  三、逐步修复收损坏的数据表

  如果不幸你的数据表受到损坏时,该怎么进行修复呢笔者认为,应该采用逐步修复的方式。不过在执行修复操作是,有两个必要的步骤需要做。一是停止运行数据库服务器,二是对相关的数据文件进行备份。虽然说Myisamchk工具是一个相对安全的数据检查工具,但是在对数据进行恢复之前对数据文件进行必要的备份,仍然是一个必要的安全措施。在对对数据进行恢复时,通常可以按照下面的顺序来操作。

  一是检查数据表,以判断到底哪些数据表出现了问题,以及出现问题的大小。为了安全与效率的考虑,在修复时一般只修复那些出现问题的数据表。在检查数据表时,可以使用-update-state选项来告诉Myisamchk工具哪些数据表是检查过的,并且对有问题的表格会进行标识。然后再修复时,可以指定Myisamchk工具只修复那些报告有错误的表格。

  二是进行简单安全的修复。在刚开始修复数据时,最好采用“快速恢复模式”。在这个模式下,数据库系统并不接触数据文件来修复索引文件。如果数据文件包含它应有的一切内容和指向数据文件内正确的删除连接,此时使用快速恢复模式就可以修复损坏的数据表,如果即使采用简单安全的修复,最好在修复开始之前对数据表做好备份工作。然后使用Myisamchk–r表名字来恢复指定的数据表。运行这个命令之后,系统将从数据文件中删除不正确的纪录和已经被删除的记录,并会重新创建索引文件。如果采用这个模式还不能够修复数据文件时,则采用下面一个恢复模式。

  三是索引文件破坏情况下的恢复模式。如果数据库表格的索引文件的第一个16K块被破坏掉,或者说包含不正确的信息,又或者整个索引文件丢失,在这种情况下,就需要创建一个新的索引文件。此时就需要用到下面谈到的恢复模式。此时数据库管理员需要先将数据文件转移到安全地方,然后使用表描述文件来创建新的数据文件和索引文件。然后再将老的数据文件复制到新创建的数据文件之中。然后再使用命令Myisamchk–r-q来恢复数据表。如果只是索引文件出现了问题,那么使用这个命令就可以恢复数据。

  四是最极端的情况,即表描述文件也受到了损坏。此时就不能够采用上面这个恢复模式。因为已经无法使用表描述文件来创建新的数据文件和索引文件。此时笔者建议,要采用数据库恢复的方式,来恢复全部的数据文件。在mysql数据库中,可以根据需要设置完全备份或者增量备份。如果表描述文件也损坏时,那么采用数据库恢复的方式,无疑是最安全的方法。

  当然Myisamchk工具的功能不只上面这些。其下面有很多有趣的内容。如可以根据需要,修复某个指定的数据表。也可以使用通配符批量的检查文件。甚至可以对独立的数据文件进行检查等等。不过需要注意的是,无论是采用哪种方式,都需要先对数据库进行必要的备份。虽然说Myisamchk这个工具相对来说是比较安全的。但是养成在任何检查与修复之前先对原有的数据进行备份,仍然是一个不错的数据库管理习惯。

  不过需要注意的是,Myisamchk工具并不是万能的。对于一些极端性的损坏,如表格描述文件损坏,这个工具就没有用武之地了。为此数据库管理员还是需要最好数据库日常的备份工作。数据库管理员一定要做好这方面的工作,来确保数据库的万无一失。

“如何利用Myisamchk对Mysql数据表进行体检”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: 如何利用Myisamchk对MySQL数据表进行体检

本文链接: https://lsjlt.com/news/59255.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何利用Myisamchk对MySQL数据表进行体检
    本篇内容介绍了“如何利用Myisamchk对MySQL数据表进行体检”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2024-04-02
  • MySQL中怎么对数据表进行故障检测
    MySQL中怎么对数据表进行故障检测,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。表的故障检测和修正的一般过程如下:◆ 检查出错的表。如果该表...
    99+
    2024-04-02
  • 怎么对Python数据表进行检查
    这期内容当中小编将会给大家带来有关怎么对Python数据表进行检查,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问...
    99+
    2023-06-14
  • 如何对ADO.NET 数据集进行添加窗体
    这篇文章主要讲解了“如何对ADO.NET 数据集进行添加窗体”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何对ADO.NET 数据集进行添加窗体”吧!数据集介绍:提供什么是 ADO.NET...
    99+
    2023-06-17
  • 【MySQL】MySQL中如何对数据进行排序
    目录 MySQL中的数据排序一、 排序的基本使用二、 使用列的别名来排序三、 二级排序 MySQL中的数据排序 一、 排序的基本使用 在查询数据时,如果没有使用排序操作,默认情...
    99+
    2023-09-01
    mysql sql 数据库
  • 如何在Kotlin中利用SharedPreferences对数据进行存取
    这篇文章将为大家详细讲解有关如何在Kotlin中利用SharedPreferences对数据进行存取,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体方法如下class Preference...
    99+
    2023-05-31
    kotlin sharedpreferences
  • mysql如何利用binlog进行数据恢复详解
    前言 最近线上误操作了一个数据,由于是直接修改的数据库,所有唯一的恢复方式就在mysql的binlog。binlog使用的是ROW模式,即受影响的每条记录都会生成一个sql。同时利用了binlog2sql项...
    99+
    2024-04-02
  • 如何利用spark进行数据分析
    使用Spark进行数据分析可以遵循以下步骤: 准备数据:将数据加载到Spark中,可以使用Spark的DataFrame API...
    99+
    2024-04-02
  • 利用java怎么对oracle或mysql数据库进行连接
    这篇文章给大家介绍利用java怎么对oracle或mysql数据库进行连接,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体方法如下:package com.nuo.test.Connection;import jav...
    99+
    2023-05-31
    java oracle mysql
  • MySQL对数据表已有表进行分区表的实现
    目录操作方式操作过程对现有的一个表进行创建分区表,并把数据迁移到新表,可以按时间来分区,然后这表不是实时更新,每天有一次插入操作。 时间比较充裕,但是服务器上有其他应用,使用较小资源...
    99+
    2024-04-02
  • 利用Jdbc在对数据库进行连接
    利用Jdbc在对数据库进行连接?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Jdbc连接数据库的基本步骤package demo.jdbc;import jav...
    99+
    2023-05-31
    jdbc 数据库
  • python如何利用pd.cut()和pd.qcut()对数据进行分箱操作
    这篇“python如何利用pd.cut()和pd.qcut()对数据进行分箱操作”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇...
    99+
    2023-07-02
  • 如何在Android中利用TextView对字体颜色进行更改
    如何在Android中利用TextView对字体颜色进行更改?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android 实现不同字体颜色的TextView实现代码:packa...
    99+
    2023-05-31
    android roi textview
  • 怎么对MySQL数据库中表的数据进行更新
    小编给大家分享一下怎么对MySQL数据库中表的数据进行更新,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Update语句的基本语...
    99+
    2024-04-02
  • 利用SSIS进行SharePoint 列表数据的ETL
         好几年前写了一篇《SSIS利用Microsoft Connector for Oracle by Attunity组件进行ETL!》,IT技术真是日新月异,这种方式对于新的SQL SERVER 数据库版本已不适用了,比如...
    99+
    2019-04-14
    利用SSIS进行SharePoint 列表数据的ETL
  • Java如何利用Socket进行数据读写
    目录利用Socket进行数据读写InetAddress与URLSocket通信UDP通信Socket通信中,持续单向读写的同步问题发送端Socket操作(Socket send)接收...
    99+
    2024-04-02
  • 如何利用Google Analytics进行数据分析
    利用Google Analytics进行数据分析涉及以下几个关键步骤:1、设置跟踪代码,2、定义目标和转化,3、监测流量来源,4、分析用户行为,5、创建自定义报告,6、设置事件跟踪。在开始使用Google Analytics之前,你需要在网...
    99+
    2023-10-29
    数据 Google Analytics
  • mysql如何进行表数据的增删改查
    这篇文章主要介绍mysql如何进行表数据的增删改查,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在mysql中,可以使用SELECT语句进行表数据的查询,使用INSERT语句...
    99+
    2024-04-02
  • MySQL分表分库如何进行数据切分
    这篇文章主要讲解了“MySQL分表分库如何进行数据切分”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL分表分库如何进行数据切分”吧!数据库分布式核心...
    99+
    2024-04-02
  • SQL如何使用正则表达式对数据进行过滤
    目录1、基本字符匹配2、进行OR匹配3、匹配几个字符之一4、匹配范围5、匹配特殊字符6、匹配字符类7、匹配多个实例8、定位符9、like语句与正则总结1、基本字符匹配 数据库使用正则进行过滤,写法与like语句非常相似,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作