聚集索引和非聚集索引的区别?
聚集索引
1:物理地址和数据存储的地址一致。
2:一张表中只能有一个聚集索引。
3:形象化举例,根据拼音从字典中查找某个认识的字。
非聚集索引
1:物理地址和数据存储地址不一致,是指向数据存储地址的指针。
2:一张表中可以有多个非聚集索引。
3:形象化举例,根据偏旁部首从字典中查找某个不认识的字。
sql:
create table users(id int,name varchar(20))
create clustered index idx_usersId on users(id)
create nonclustered index nidx_users on users(id,name)
使用索引的好处:提高查询效率。分析如下:
不使用索引,则根据某个条件查找数据时,会进行全表扫描。
使用聚集索引,索引会对该字段进行有序排序,查找时,根据索引,使用特定算法,快速定位到所要找的数据。
使用非聚集索引,则会建立一个指向该字段的指针。
使用索引的坏处:
减低insert,update,delete的效率。
数据查询时,可以指定索引
select * from users with (index(idx_usersId)) where id>100 and id<120
create index idx_xx on table(xx),通常默认是建的非聚集索引。