索引的优点:
1、索引能够提高数据检索的效率,降低数据库的IO成本。
2、索引还有一个非常重要的用途,就是降低数据的排序成本。
每个索引中的索引数据都是按照索引键值进行排序后存放的,所以,当我们的query语句中包含排序分组操作的时候,如果我们的排序字段和索引字段刚好一致,MySQL Query Optimizer就会告诉mysqld在取得数据后不用排序了。
分组操作没办法直接利用索引完成,但是分组操作是需要先进行排序后才分组的,所以如果Query包含这些操作,那么分组操作就省去了排序的过程。
排序分组操作主要消耗的是我们的内存和 CPU 资源,如果我们能够在进行排序分组操作中利用好索引,将会极大的降低 CPU 资源的消耗。
索引的弊端:
1、需要增加IO和调整索引所计算的量。索引占用存储空间,随着table数据里增长,索引数据量也会增长,带来存储空间的消耗。