索引是什么意思

【索引是什么意思】每个人在开发过程中都无法避免使用数据库索引,那么你了解数据库索引吗?接下来我简单说一下什么是数据库索引 。1.数据索引有什么用?其实数据库索引是为了让数据查询更高效 。二、什么是数据库索引?聚集索引(主键索引)  
每个人在开发过程中都无法避免使用数据库索引,那么你了解数据库索引吗?接下来我简单说一下什么是数据库索引 。  
1.数据索引有什么用?  
其实数据库索引是为了让数据查询更高效 。  
二、什么是数据库索引?  
聚集索引(主键索引):在数据库中,所有行都根据主键索引进行排序 。  
非聚集索引:是给常用字段添加索引 。  
联合索引:是由几个字段组成的索引,称为联合索引 。  
key‘idx_age_name_sex’ (‘age‘,’ name‘,’ sex‘)  
联合索引遵循最左边的前缀原则 。什么意思?举个例子,如果一个学生表中的工会指数如上图,那么下面的A、B、C、D、E、F哪个会跟在指数后面?  
A:从学生中选择*年龄=16岁,姓名=’小张’  
B:从学生中选择*名=’小张’,性别=’男’  
C:从学生中选择*姓名=’小张’,性别=’男性’,年龄=18岁  
D:从学生中选择* 20岁,姓名=’小张’  
e:从学生中选择*年龄!=15且姓名=’小张’  
f:从学生中选择*年龄=15岁,姓名!=’小张’  
a遵循最左边匹配原则,年龄在最左边,所以a取索引;  
b直接从名字开始,不遵循最左边匹配原则,所以不遵循索引;  
c以名字开头,但在索引中有最左边的年龄,mysql会自动改成其中年龄=’18 ‘,名字=’小张’,性别=’男’,所以还是遵循最左边的匹配原则;  
d这是因为age20是一个范围,范围字段会结束范围后面的索引字段的使用,所以只取年龄索引;  
e这个虽然遵循最左边的匹配原则,但是不遵循索引,因为!=不要转到索引;  
f这个只取年龄指标,不取姓名指标,以上原因;  
第三,哪些列不取索引?  
学生表中的年龄、姓名两个字段被索引  
键“idx_ age”(“age”),  
键“idx_ name”(“name”)  
1.像这样意味着%前面不跟指数,后面跟指数  
A:从学生中选择*,其中“姓名”如“国王%”  
B:从学生中选择*,其中“姓名”如“%小”  
甲取指数,乙不取指数  
2.如果索引列用于计算,则不采用索引  
a:从年龄=108岁的学生中选择*  
b:从8岁=18岁的学生中选择*  
甲取指数,乙不取指数  
3.对索引列使用函数,不要取索引  
A:从学生中选*多联(‘姓名’,’哈’)=’王哈哈’;  
B:从学生中选择*其中name=concat(‘王哈’,’ ha‘);  
a不取指数,B取指数  
4.使用了索引列!=不要索引,如下所示:  
从学生年龄中选择*!=18  
4.为什么要用B树做索引?  
这可以指什么是B树  
5.索引在磁盘上的存储?  
聚集索引和非聚集索引的存储方式不同,那么它们是如何存储的呢?  
有学生名单  
创建表格“学生”(  
` id`int(11)不为nullauto_ incrementcomment‘主键id‘,  
` name`varchar(50) notnulldefault‘ ‘注释’学生姓名’,  
` age`int(11)不为null默认0注释’学生年龄’,  
主键(` id`),  
key`idx_age` (`age`)、  
键` idx_name` (`name`)  
)engine=innodbdefaultcharset=utf8 comment=’学生信息’;  
表格内容如下  
Id是主键索引,名称和年龄是非聚集索引  
1.磁盘中聚集索引的存储


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。