mysql 性能优化

mysql 性能优化

一。查询一些常用的性能参数
show STATUS like 'Show_queries';

CONNECTIONs:连接mysql服务器的次数;

Uptime:MYSQL服务器的上线时间;

Show_queries:慢查询的次数;

Com_select:查询操作的次数;

Com_insert:查询插入的次数;

Com_update:查询更新的次数;

Com_delete:查询删除的次数;

二。优化查询

1.分析查询语句 EXPLAIN 和 DESCRIBE

(1) EXPLAIN

语法:EXPLAIN + sql语句 (例如:explain SELECT * from aaa)

参数说明:请参考 https://www.cnblogs.com/anxbb/p/8809075.html

(2) DESCRIBE

语法:DESCRIBE + sql语句 (与EXPLAIN用法类似)

2. 索引优化查询速度

(1) like 语句只有****% 可以使用索引 %*****%这样的事无法使用索引的

(2) 使用组合索引的时候(一个索引可以包含16个字段),只有使用了定义组合索引的第一列 才能使用索引查询

(3) 使用 or查询的时候,只有 or的前后条件的列都事索引的时候,才能使用索引查询

3.优化子查询

(1)对于查询逻辑不强,且数据不是很大的时候可以用子查询,优化查询(新建内存表)

(2)但是逻辑很强或者数据很大的时候,采用 join加索引的方式比较好(避免内存表太大,影响查询速度)

二。优化数据库结构

1.将字段很多的表,不是频繁查询的字段拆标,放在一个新表之中

2.增加中间表,将经常联合查询的语句 新建一张表,等下次在查询 直接查询中间表就可以。

3.增加冗余字段,避免过多的联合查询

4.优化插入记录的速度

(1)使用批量插入

(2)数据量特别大的时候,建议使用 LOAD date INFILE

(3)数据量大时候,可以先禁用索引,插入成功之后在开启 语法: ALTER Table 表明 DISABLE KEYS; 开启: ALTER Table 表明 ENABLE KEYS;

5.分析表 ANALYZE TABLE aaa

6.检查表 CHECK TABLE aaa

7.优化表 table中存在varchar,blob或者Text OPTIMIZE TABLE aaa (表示可以消除删除和更新造成的碎片) (OPTIMIZE TABLE LOCAL 或者 NO_WRITE_TO_BINLOG aaa 表示不写入二进制日志)

原文地址:https://www.cnblogs.com/anxbb/p/9253160.html