关于mysql索引的一些疑问,查阅了很多资料,说的都很模糊,有几种类型的索引不知道怎么加:
1.groupby的索引要怎么加?单独的加一个索引还是和搜索条件加在一起?
2.有LEFT JOIN的查询索引要怎么加,例如
SELECT a.id,FROM a
LEFT JOIN b
ON a.id = b.aid
WHERE a.year = 1 AND b.month = 2
GROUP BY b.a
ORDER BY a DESC
3.像有
SELECT a.id,SUM(a.q+a.w) as day_pv FROM a
ORDER BY day_pv DESC
这样的索引要怎么加?
关于索引以及mysql语句优化方面的东西很薄弱。
或者有什么相关的文章或书籍可以推荐的
mysql复合索引与普通索引总结
书籍呢:高性能的mysql(第三版) 索引部分,淘宝那帮翻译的那部
建索引主要根据表的查询条件,原则上找数据可选性高的字段创建索引,如人员id、姓名等,根据这样的条件可以大大缩小查询结果集。
高性能mysql第三版,第五章,专门讲解创建高性能的索引,索引主要是针对表的不同查询字段建立的,为了缩短查询时间,提高性能
一般用于排序的字段要加上B-树索引,where的字段需要加上索引,多条件的需要组合索引,索引顺序要与条件符合