粗浅理解数据库联合索引
在表中对多个列建立联合索引,比如(a, b, c),这种情况下实际建立了三个索引:
- a
- (a, b)
- (a, b, c)
因此,如果对b或者c列进行查询,就需要另外建立索引进行优化。当然,不是索引越多越好,毕竟对插入、更新数据(实际也就是I/O)会有影响。
在表中对多个列建立联合索引,比如(a, b, c),这种情况下实际建立了三个索引:
因此,如果对b或者c列进行查询,就需要另外建立索引进行优化。当然,不是索引越多越好,毕竟对插入、更新数据(实际也就是I/O)会有影响。
一个简单的应用,查询数据库中的用户名,同时去掉其他重名的用户。测试数据库如下:
mysql> select name from demo;
+———+
| name |
+———+
| yxh |
| yxh |
| default |
+———+
查询时,只要限定关键词‘distinct’即可,例如:
mysql> select distinct name from demo where name != ‘default’;
+——+
| name |
+——+
| yxh |
+——+
1 row in set (0.02 sec)