本文作者:kris

Mysql性能优化方案分享-mysql性能优化方案分享

kris 2025-01-24 10:49:56 3
Mysql性能优化方案分享-mysql性能优化方案分享摘要: 对mysql数据库表频繁添加删除修改导致数据库卡,怎么优化?不要用delete,可以尝试用下列办法 drop table tblname; -- 彻底删除该表 truncate t...

对mysql数据库表频繁添加删除修改导致数据库卡,怎么优化?

不要用delete,可以尝试用下列办法 drop table tblname; -- 彻底删除该表 truncate table tblname; -- 快速删除数据,但是保存数据结构

mysql如何定期分析检查与优化表?

1. 对表进行优化 ( 优化表主要作用是消除删除或者更新造成的空间浪费)

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

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

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

分析表

ANALYZE TABLE 表名1 [,表名2…] ;

Mysql性能优化方案分享-mysql性能优化方案分享

图片来源:网络

ANALYZE TABLE分析表的过程中,数据库系统会对表加一个只读锁。在分析期间,只能读取表中的记录,不能更新和插入记录。ANALYZE TABLE语句能够分析InnoDB和MyISAM类型的表。

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

检查表

MySQL中使用CHECK TABLE语句来检查表。CHECK TABLE语句能够检查InnoDB和MyISAM类型的表是否存在错误。还可以检查视图是否存在错误.

check table 表名

优化表

随着MySQL的使用,包括BLOB和VARCHAR字节的表将变得比较繁冗,因为这些字段长度不同,对记录进行插入、更新或删除时,会占有不同大小的空间,记录就会变成碎片,且留下空闲的空间。像具有碎片的磁盘,会降低性能,需要整理,因此要优化。 (个人理解:当删除数据之后,原来的索引文件位置会空出来。等待新文件的插入,optimize命令就是整理索引文件)

针对MyISAM表,直接使用如下命令进行优化

optimize table table1[,table2][,table3]

myisam

innodb

Table does not support optimize, doing recreate + analyze instead。因为Innodb结构下删除了大量的行,此时索引会重组并且会释放相应的空间因此不必优化。

show table status like ‘表名’;

文章版权及转载声明

作者:kris本文地址:https://www.damoyx.com/p/26878.html发布于 2025-01-24 10:49:56
文章转载或复制请以超链接形式并注明出处大漠游侠网

阅读
分享