索引设计一般原则
1.针对你的SQL语句里的where条件、order by条件以及
group by条件去设计索引
2.尽量使用那些基数比较大的字段,就是值比较多的字段,那么才能发挥出B+树快速二分
查找的优势来
3.索引长度小一点,占用磁盘空间,搜索性能会好一点(字段类型小的,前缀索引)
4.设计索引别太多,建议两三个联合索引就应该覆盖掉
你这个表的全部查询了
5.主键一定是自增的,别用UUID之类的
实战
鱼与熊掌不可兼得
1.往往在类似这种SQL里,你的where筛选和
order by排序实际上大部分情况下是没法都用到索引的
一般都是优先通过where条件使用索引,快速帅选出一部分指定数据。数据量不大的化,排序分页成本不会太高
核心重点
尽量利用一两个复杂的多字段联合索引,抗下你80%以上的 查询,
然后用一两个辅助索引抗下剩余20%的非典型查询,
保证你99%以上的查询都能充分利用索引,就能保证你的查询速度和性能
