数据库--索引
聚集索引与非聚集索引
聚集索引是指数据在表中存储的顺序是与索引的顺序相同的,而非聚集索引则是数据在表中存储的顺序与索引的顺序无关。
说到这两类索引的时候,大家都会举一个很具有代表性的例子来进行说明。那就是拿新华字典的拼音检索和部首检索来进行类比。在新华字典中,拼音检索表是按a ~ z的顺序排列的,而字典中所有字的顺序也是按a ~ z排列,这就类似于聚集索引。但如果我们用部首进行检索的话,就会发现,部首检索表中部首的排列顺序和字的排列顺序是没有任何关系的,这就好比非聚集索引。
普通索引
没有任何限制的索引。
唯一索引
唯一索引要求索引字段的值是唯一不重复的。比如说在user_name字段上加了唯一索引,那么久要求表中的用户姓名是没有重复的。
主键索引
根据主键进行索引,因为主键的值都是唯一的,所以主键索引是一种典型的唯一索引。
sql优化思路
1.避免全表扫描。on和where子句涉及的字段上必须有索引。mysql在使用不等于(!=,<>,is null,is not null,like)的时候无法使用索引会导致全表扫描;
2.避免索引失效。不在索引字段上做任何操作(计算、函数、自动或手动转换);
3.避免排序,必须要用时选择索引字段排序;
4.避免查询不必要的字段,不要使用select *;
5.避免临时表的创建和删除;