首页 > 语言 > 关键词  > MySQL优化最新资讯  > 正文

对mysql表进行优化、分析、检查和修复的说明

2010-04-14 17:18 · 稿源:站长之家Chinaz.com

对数据库的管理常规就是进行预防性的维护,以及修复那些出现问题的内容。

进行检查和修复通常具有四个主要的任务:

1. 对表进行优化

2. 对表进行分析(分析并存储MyISAM和BDB表中键的分布)

3. 对表进行检查(检查表的错误,并且为MyISAM更新键的统计内容)

4. 对表进行修复(修复被破坏的MyISAM表)

一、对表进行优化

优化表有很多方式实现: OPTIMIZE TABLE语句、mysqlcheck工具(服务器要运行)或myisamchk(服务器没有运行或表中没有交互)

为什么优化?随着MySQL的使用,包括BLOB和VARCHAR字节的表将变得比较繁冗,因为这些字段长度不同,对记录进行插入、更新或删除时,会占有不同大小的空间,记录就会变成碎片,且留下空闲的空间。像具有碎片的磁盘,会降低性能,需要整理,因此要优化。

1. 利用OPTIMIZE语句对表进行优化

# mysql>OPTIMIZE TABLE 表名

这样就对表名进行了优化。

2. 利用mysqlcheck对表进行优化

mysqlcheck可进行优化外,还可执行大量的检查和修复任务。

# mysqlcheck -o 数据库名 表名 -uroot -p111111 (一张表)

# mysqlcheck -o 数据库名 表名1 表名2 -uroot -p111111 (多张表)

# mysqlcheck -o 数据库名 -uroot -p111111 (对整个数据库)

3. 利用myisamchk对表进行优化

# myisamchk --quick --check-only-changed --sort-index --analyze 表名

# myisamchk -r 表名 (参数-r表示对表进行修复,同时也删去了浪费的空间)

# myisamchk -r /usr/local/mysql/data/testblog/article (指定表所在的路径)

以上操作需在服务器关闭或没有与服务器互操作的时候,可以使用myisamchk命令行工具(如果服务器正在运行,那么在运行这条语句之前利用mysqladmin flush-tables对表进行刷新。需确保服务器没有与表进行互操作,否则会出现故障)。myisamchk是最老的方法。必须在正确位置上运行myisamchk,或者指定表所在的路径。

注意:在优化过程中,表会被锁住,因此不要在忙时进行优化操作。同样,需要有足够的空间才能进行OPTIMIZE TABLE。如果没有磁盘空间,MySQL将不能进行优化,表也无法使用。

优化是对包含MyISAM表的数据库的常规管理事务中一个重要环节,应该定期进行。

二、对表进行分析

对表的定期分析可以改善性能,且应该成为常规维护工作的一部分。因为通过更新表的索引信息对表进行分析,可改善数据库性能。

有三种方法可以对表进行分析:

1. 连接到MySQL时,使用ANALYZE TABLE语句

2. 利用mysqlcheck命令行工具(服务器需要运行,并且只对MyISAM表起作用)

3. 利用myisamchk命令行工具(服务器不应该运行,或无对所操作的表发生互操作)

# ANALYZE TABLE 表名;

# mysqlcheck -a 数据库名 表名 -uroot -p111111

# mysqlcheck -a 数据库名 表名1 表名2 -uroot -p111111

如果试图对不支持分析操作的表进行分析(如InnoDB),那操作将无法进行

# myisamchk -a /usr/local/mysql/data/数据库/表名

举报

  • 相关推荐
  • 男子坐过山车听到脖子嘎嘣响 去医院检查发现差点瘫痪

    过山车因为运行速度快,G值大,被认为是刺激性娱乐项目,即便限制身体异常的游客乘坐,但仍可能会对身体健康的人士造成伤害。 据报道,近日,襄阳的黄先生在外地坐丛林飞龙”过山车时,听见自己的脖子嘎嘣嘎嘣响了好几声,后诊断为颈椎骨折,颈椎第六节压缩50%以上。 医生表示,看到他玩过山车之后在当地医院拍的片子,可以看出情况十分危险,如果他当时压得比

  • 优化产品结构的战略样本:海尔中央空调发明超宽频科技

    海尔中央空调在“全屋AI智慧健康空气专家”战略推动下,持续优化产品结构和技术迭代。2025年推出行业首创“一机三系统”方案,并发布超宽频科技,实现4Hz-160Hz超宽频运行,突破行业技术瓶颈,带来更静音、舒适、节能的用户体验。该技术依托全球研发与AI赋能,解决多机协同痛点,实现24小时连续运转。海尔通过数字化转型与全球研发布局,持续引领行业从单一温控向全面空气体验转型。

  • 考试数字化 “破题者” 易宝支付YEEPAY:多方案优化体验,获行业专业认可

    文章探讨了考试数字化的重要性,指出考生常因系统、网络、支付等问题焦虑。考试管理涉及多部门协作,报名费清算复杂。数字化推动考试成为数字中国建设的试金石,体现公共服务水平。AI赋能教育考试,生成海量数据但多被闲置。易宝支付等机构助力考试数字化转型,提升效率与公平。未来考试将减少对传统题库依赖,实现自动组卷与智能评分。考试数字化面临地域差异挑战,需打通“云-网-端-安”全链路。易宝支付定制化系统保障安全,服务超30省份,优化考生体验并提升政府效能。

  • docker怎么安装MySQL docker安装MySQL教程

    把MySQL放进Docker,总共需要几步?本次就通过社区版容器安装2个mysql实例,看一下部署有多简单。

  • 甲骨文发布支持MySQL HeatWave服务的MySQL Autopilot

    MySQL Autopilot提供 9 种基于机器学习的自动化能力,进一步提升MySQL Heatwave服务的性能和可扩展性。根据行业标准TPC-H基准,MySQL HeatWave的性价比高出Snowflake达 35 倍,比亚马逊Redshift的AQUA高 13 倍。2021年8月12日,北京——甲骨文宣布推出MySQL Heatwave服务的最新组件MySQL Autopilot,可作为在Oracle云基础设施(Oracle Cloud Infrastructure, OCI)之上,MySQL数据库服务的内存中查询加速引擎。MySQL Autopilot借?

  • MySQL数据库怎么升级 MySQL数据库升级教程

    当前不少系统的数据库依旧是MySQL5.6,由于MySQL5. 7 及MySQL8. 0 在性能及安全方面有着很大的提升,因此需要升级数据库。本文通过逻辑方式、物理方式原地升级来介绍MySQL5.6 升级至MySQL5. 7 的方法,并介绍其使用场景。

  • 国内首家!京东云正式宣布支持MySQL 8.0

    1 月 25 日,京东云宣布,京东云云数据库 RDS 在所有地域正式支持 MySQL 8. 0 版本。MySQL 8.0 是目前 MySQL 社区的最新版本,相比较 MySQL 5.7,支持了更多新功能,对原有功能做了重大更新和优化,同时在性能方面也有显著的提升。此次京东云首发MySQL 8. 0 版本,不仅证明了京东云技术团队的研发实力和创新能力,同时也表现了京东云希望通过更加优质的云计算服务回馈用户,并助力用户运用新技术不断创新,实现更多的商业价值。MyS

  • 人大金仓三大兼容:MySQL迁移无忧

    MySQL5.7停服事件引发广泛关注。MySQL目前已经成为中国用户使用非常广泛的数据库,其中5.7版本的用户比重又是最高的。经过项目实战中不断测试和验证,人大金仓确保产品的稳定性和可用性,能够高可用高性能高安全地支撑和保障用户业务。

  • 为什么MySQL默认隔离级别是RR

    曾多次听到“MySQL为什么选择RR为默认隔离级别”的问题,其实这是个历史遗留问题,当前以及解决,但是MySQL的各个版本沿用了原有习惯。历史版本中的问题是什么,本次就通过简单的测试来说明一下。

  • GEO排名优化:AI如何重新定义搜索引擎的可见性规则?

    文章探讨AI搜索时代下,传统SEO向GEO(生成引擎优化)的转变。核心指出GEO通过多维数据融合与AI理解,构建企业可信数字实体,实现智能推荐。技术决策者需关注从关键词匹配转向实体价值理解的底层逻辑革命,提前布局以抓住AI对话流量入口。

今日大家都在搜的词: