2019独角兽企业高薪工程师招聘标准>>>
数据库中的索引对于搜索非常有用。作者做了两个实验。插入数据的时候,速度很慢。作者做了这样的实验:
1:数据库列的索引
①:首先执行语句 into test.user ( * from root.user where root.user.id>1 and root.user.id
②:发帖者在表字段名上添加了索引,效果非常显着,让发帖者感到惊讶。添加索引后,时间为0.56秒(具体时间我忘记了)。这是什么概念?与带索引的SQL相比,时间实际上是0.56秒。是上一级别的100倍!
③:数据库如何管理索引。我们都知道,数据在硬盘上的存储是无规律的。即使有两个相邻的数据,它们的物理地址也不一定相邻。因此,数据库为索引列维护一棵二叉树。二叉树的每个节点记录了相应的字段数据(id值)和物理地址。当你检索索引数据时,数据库会快速从二叉树中检索索引数据。找到你的搜索栏的值,然后根据对应的值获取对应的地址,从而根据弱地址快速定位到数据。
2:模糊搜索是否应该建立索引
①:发帖者使用了这样一个sql,* from where name like '%李%'。即使你给这个sql的名称添加了索引,它也不会使用索引,而是使用整个表。
②:作者改了一条SQL,* from where name like '李%',这条SQL稍后会被索引。
③:后来发帖者把百分号改到了前面,* from where name like '%李',这种SQL还是没有索引。
④:然后海报改变了:* from where id>0 and id
⑤:*来自其中id>0且id
因此,对于MySQL的索引问题:模糊搜索,%不走前面的索引,而是走后面的索引。如果SQL有索引,就会先去索引,但更重要的是,当模糊搜索中的百分号在后面时,当要搜索的数据被其他占位符占用时,SQL不会被索引!
扫一扫在手机端查看
-
Tags : sql模糊查询会走索引吗
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。