包含类容:查询速度优化,数据库结构优化,和服务器优化。
查询速度优化
一. 查询速度优化
分析语句:EXPLAIN 和 DESCRIBE
语法:EXPLAIN [EXTENDED] SELECT_OPTION
建立合理的索引。
使用%进行模糊查询,如果第一个字符为%索引不会起作用。
对于多列索引,只有查询条件使用了第一个字段时才会生效
查询条件使用OR,只有都有索引列才会生效。
优化子查询,子查询效率不高,可以用join代替。
二. 数据库结构优化
一个好的数据库设计方案可以起到事半功倍的效果。
1.将很多字段的表分解为多个表。
2.增加中间表。
3.增加冗余字段。
分析表语法:
analyze [LOCAL | NO_WRITE_TO_BINLOG] table tab1_name{,tab1_name}…
三. 服务器优化
1,对硬件进行优化
2,对服务器参数进行优化
问题:是不是索引建的越多越好?
答:不是,插入操需要给新插入数据建立索引,索引越多插入越慢。
合理的索引可以提高查询速度,原则上只有查询用的字段才建立索引。
问题:为什么查询语句中的索引没有起作用?
答:使用%进行模糊查询,如果第一个字符为%索引不会起作用。
对于多列索引,只有查询条件使用了第一个字段时才会生效
查询条件使用OR,只有都有索引列才会生效。
问题:如何使用查询缓冲区?
答:默认为0,不可用。在my.ini配置中修改query_cache_size进行调整大小query_cache_type修改类型。适合查询较多,更新较少情况。