登录
首页 >  数据库 >  MySQL

Mysql-索引类型篇

来源:SegmentFault

时间:2023-02-24 19:29:29 171浏览 收藏

你在学习数据库相关的知识吗?本文《Mysql-索引类型篇》,主要介绍的内容就涉及到MySQL、Mysql索引,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

在索引结构篇我们知道了聚集索引和非聚集索引的区别,在mysql中,还有一些其他类型索引的概念

联合索引(多列索引):使用多列字段组合创建索引,联合索引查询比设置多个单列索引效率高

联合索引如何查询:按顺序先比较第一个联合的字段大小,相同就继续比较下一个
最左前缀原则:涉及到联合索引的查询时,最左优先,从联合索引的最左边开始匹配,否则,因为其他字段的非有序性,需要去扫描全表(覆盖索引下扫描的是索引树),无法进行联合索引的使用。需要考虑的是,如果仅仅是where后字段and顺序的不同,是不会影响联合索引的使用的,因为mysql优化器会优化(另外,联合索引中的字段,使用范围查询会使右边字段在索引中失效。例如select * from table where a=1 and b>2 and c=3,a b c建立联合索引,当联合索引确定a的值后,因为b和c都是相对有序,而b是范围查找,所以c无法确定顺序,导致c失效,联合索引只查询到a b

前缀索引:当对长类型的字段添加索引的时候,要使用前缀索引对字段指定长度的部分创建索引,否则会造成索引存储空间过大

覆盖索引:对字段进行覆盖索引操作,如果索引存储的数据满足查询语句需要的结果,则不需要再去进行系统调用,直接返回索引中的数据

唯一索引(Unique):索引字段要求唯一性,不允许重复数据

普通索引(Normal):基本索引类型,非主键

全文索引(Full Text):一般对长文本创建的索引

空间索引(SPATIAL):对空间类型数据创建的索引

tips:
1.索引不能放在表达式或者函数中,否则会失效

2.有时候正确使用联合索引,或者辅助索引中的主键,可以避免回表

本篇关于《Mysql-索引类型篇》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于数据库的相关知识,请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>