优化查询
分析查询语句
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}