学习自
https://blog.csdn.net/weiliangliang111/article/details/51333169
索引是怎么工作的?
比如某个表上,有这样的一列,user_name
user_name
------------
alibaba
baidu
tencent
如果 想找tencent,太慢了 ,需要一个个 检索,检索 最后一条或者没有想找的字段,需要进行全表扫描。性能太差了。所以可以考虑添加一个B树的索引,把开头为t的字段都聚集在一起,这样就好找多了。(不知道是不是B树,感觉这种情况字典树最好了)
如果希望通过找到的这一个字段,再去寻找这一行的 所有字段呢?
索引中除了存储列的值,还存储着一个指向在行数据的索引。等同于 (“tencent”, 0x82829)
建立索引后,如何使用索引?
直接select, 数据库会自动判断。(但是注意如果使用索引比全表扫描更低效,那么数据库就不会替我们使用索引了)
创建索引
create index 索引名 on 表名(列名)
创建联合索引(用于多条件查询,所以需要给多个列添加索引)
create index 索引名 on 表名(列名1,列名2)
创建聚集索引(聚集索引:索引和表的顺序一致,比如你给某一列添加了聚集索引,索引有一定的排序规则吧,同时也会让表按照索引的顺序来,以后插入一行的时候不是插入在最后面,而是按照规律来插入)
create clusteredindex 索引名 on 表名(列名)
唯一索引:不允许该列有相同的元素
主键 索引: 默认的