MySQL(14):性能优化

本文深入探讨了SQL查询优化的关键策略,包括使用EXPLAIN和DESCRIBE分析查询语句,理解索引对查询速度的影响,优化子查询和数据库结构,以及如何通过禁用索引和唯一性检查来加速数据插入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

优化查询

分析查询语句

EXPLAIN [EXTENDED] SELECT select_options

使用EXTENED关键字,EXPLAIN语句将产生附加信息。

DESCRIBE SELECT select_options 

索引对查询速度的影响

  • 若果使用索引进行查询,查询语句可以根据索引快速定位到待查询记录,从而减少查询的记录数,达到提高查询速度的目的。

  • 在使用LIKE关键字进行查询的查询语句中,如果匹配字符串的第一个字符为“%”,索引不会起作用。

  • 对于多列索引,只有查询使用了这些字段的第一个字段时,索引才会被使用。

  • 查询语句的查询条件中只有OR关键字,且OR前后的两个条件中的列都是索引时,查询中才使用索引。否则,查询将不使用索引。

优化子查询

执行子查询时,MySQL需要为内层查询语句的查询结果建立一个临时表。因此,子查询的速度会受到一定的影响。在MySQL中,可以使用连接(JOIN)查询代替子查询。

优化数据库结构

将字段很多的表分解成多个表

增加中间表

增加冗余字段

优化插入记录的速度

禁用索引:

ALTER TABLE table_name DISABLE KEYS; 

恢复索引:

ALTER TABLE table_name ENABLE KEYS; 

禁用/启动唯一性检查:

SET UNIQUE_CHECKS=0|1

使用批量插入

 

分析表、检查表和优化表

分析表

ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name[,tbl_name]... 

检查表 

CHECK TABLE tbl_name[,tbl_name]...[option]...

option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值