参考书 《高性能 MySQL》
书中索引和SQL的优化经验不但适用于MySQL,大部分也适用于PostgreSQL、Oracle、DB2、SqlServer,以及Mongodb。
一.索引类型
1.B树索引
2.哈希索引
3.空间索引 (地理空间数据)
4.全文索引
二.索引使用策略
1.字段中不应该有表达式
低效:select * from foo where id + 1 = 8
高效:select * from foo where id = 7
低效: select * from foo where TO_DAYS('2012-12-12') -TO_DAYS(date_col) <=10
高效: select * from foowhere date_col> DATE_SUB('2012-12-12',INTERVAL10 DAY)
2.前缀索引
3.聚集索引
4.覆盖索引
三、SQL优化
1.不要提取不需要的列
2.表连接的查询一般比子查询更快
3.优化表连接:
确保ON或USING使用的列上有索引
确保Group By 和 Order By 只引用一个表上的列,这样MySQL会尝试使用索引