前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >对索引的使用

对索引的使用

原创
作者头像
Get
发布于 2024-03-12 13:27:21
发布于 2024-03-12 13:27:21
2690
举报
代码语言:java
AI代码解释
复制

什么情况下使用索引?
1、索引应该建在where 子句和 order by 经常查询的列上。
2、对于两表连接的字段,应该建立索引。
3、不应该在小表上建设索引(例如表中只有三四个字段)。
什么情况下索引失效?
1、违法最左前缀法则,索引失效
2、范围查询右边(后面)的列,不能使用索引 ,则范围查询字段后面的字段索引失效(><3、字符串不加单引号,造成索引失效
4、尽量使用覆盖索引(只访问索引的查询(索引列完全包含查询列)),避免select *
5、用or分割开的条件, 如果or前的条件中的列有索引,而后面的列中没有索引,那么涉及的索引都不会被用到。
6、索引列上进行运算操作,索引将失效,运算包括(+-*/!%<>),导致索引失效。
7、不等于(!=)比较特殊 除主键索引或索引是整数类型外的其它索引都失效。
8、索引列上不要使用函数,oracle必须使用函数索引。
9、以%开头的Like模糊查询(%xxx),索引失效。如果非要用请使用全文索引或('aaa%')
10、is  NULL , is NOT NULL  有时索引失效。
11、in 走索引, not in 索引失效。
12、尽量使用复合索引,而少使用单列索引
select xxx,xxx 若字段为索引则使用索引,若包含非索引字段则都不走索引
如何验证MySQL索引是否满足需求?
使用explain查看SQL是如何执行查询语句的,从而分析你的索引是否满足需求。
explain语法:explain select * from table where 1=1;
总结:
1、能用唯一索引,一定用唯一索引。
2、可以给字段加非空约束就尽量加上非空约束。
3、联合索引的顺序不同,影响索引的选择,尽量将值少的放在前面。
4、千万不要给大字段加索引。
检查语句是否走索引, 使用explain 关键执行一下 key是否有值, 有值就说明走了索引,null就表示索引失效
使用索引注意事项:
1、索引不会包含有null值的列
   只要列中包含有null值都将不会被包含在索引中,复合索引中只要有一列含有null值,那么这一列对于此复合索引就是无效的。
   所以我们在数据库设计时不要让字段的默认值为null2、使用短索引
   对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个CHAR(255)的列,如果在前10个或20个字符内,多数值是惟一的,
   那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。
3、索引列排序
   MySQL查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。
   因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
4、like语句操作
   一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。
   like '%aaa%' 不会使用索引,而 like 'aaa%' 可以使用索引。
5.、不要在列上进行运算
    复制代码 代码如下:
    select * from users where YEAR(adddate)<2007;
    将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成:
    复制代码 代码如下:
    select * from users where adddate<2007-01-01';
6.不使用NOT IN<>操作

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何实现一个短链接服务 | 短链接生成原理
短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。
梦溪
2021/08/09
19.7K3
短链接算法收集与分析
一般来说,第三步是我们比较头疼的,如何将一个长的URL字符串,映射成一个较短的字符串呢。我总结了三种办法:
大江小浪
2018/07/25
1.7K0
三步带你开发一个短链接生成平台
用这个地址生成的二维码也是密密麻麻,虽不影响微信长按扫码,一旦二维码尺寸缩一点点,图片马上就会糊掉,导致摄像头直接扫码会难以识别。
葡萄城控件
2020/09/27
3.2K0
三步带你开发一个短链接生成平台
URL短网址生成算法原理
短网址(Short URL),是在形式上比较短的网址,通过映射关系跳转到原有的长网址。
阳光岛主
2019/02/18
4.7K2
搭建短链接平台详细分析及具体代码实现
短链接,又称缩略网址服务、缩址、短址、短网址、缩略网址、网址缩短、缩短网址、URL缩短等,指的是一种互联网上的技术与服务。此服务可以提供短URL以代替原来可能较长的URL,将长的URL地址缩短。
Mintimate
2021/08/12
3.9K0
搭建短链接平台详细分析及具体代码实现
新浪短网址生成器等短链接工具的原理(第二章)
短网址顾名思义就是一个很短的链接和网址,常用于将一个长连接缩短成一个短链接,方便利于推广。  url.cn短网址,可能很多朋友都已经不再陌生,特别是在微博、微信、朋友圈、QQ群、短信息等应用中十分普遍,短网址的前身是在企鹅微博发微博时有时发很长的网址连接,但由于微博只限制140个字,所以微博就自动把您发的长网址给转换成短网址了。  企鹅短链接(url.cn/xxx)属于企鹅微博旗下的短网址,原先是微博在使用。短网址生成可以有效的避免链接过长,推广不便等因素 生成t.cn短连接后更有利于在微信推广和QQ群中推广 !目前过国内使用最多的短网址有三家。其中t.cn 属于新浪短链接,url.cn属于腾讯短链接,dwz.cn属于百度!今天我们要说的就是url.cn短网址!
南昌谢大脚
2020/04/23
2.6K0
如何设计一个短链接系统
短链接是一种将长URL地址转换为较短、易于记忆的链接的技术。它通过使用特定的算法或服务将长链接压缩成更短的形式,以便在限制字符长度或需要更简洁的场景下使用。
柯柏技术笔记
2024/01/10
9150
如何设计一个短链接系统
面试官说:你来设计一个短链接生成系统吧
相信大家在生活中,特别是最近的双十一活动期间,会收到很多短信,而那些短信都有两个特征,第一个是几乎都是垃圾短信,这个特点此处可以忽略不计,第二个特点是**链接很短**,比如下面这个:
秦怀杂货店
2021/12/04
6350
短链接的生成方式
短链接是一种 URL 简化服务, 比如:当你输入一个 URL https://www.xdull.com 时,它将返回一个简化的URL http://tinyurl.com/weuZn ,其中http://tinyurl.com/是提供服务的域名,后面的weuZn为简化后的URL的key值,通过这个key能还原成原来的真正的URL。
兜兜转转
2023/03/06
2.8K0
「System Design」设计一个短链接系统
短链接系统可以把比较长的 URL 网址转换成简短的网址字符串,短链接的优势是方便传播。适合在一些对字符串长度有要求的场景中使用,比如短信,微博等,比如
全球技术精选
2022/09/05
4540
「System Design」设计一个短链接系统
URL短链接实现方法
最近项目开发中,需要实现URL长链接转短链接的需求,于是在网上找了一些资料,顺便整理了下,欢迎有想法的童鞋踊跃留言,我们共同探讨。
wangxl
2018/02/25
7.6K1
URL短链接实现方法
重发和重定向有什么区别与重定向应用
第一次,客户端request A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。
王小明_HIT
2020/09/29
8220
重发和重定向有什么区别与重定向应用
短链接原理分析
1. 什么是短链接 顾名思义,短链接即是长度较短的网址。通过短链接技术,我们可以将长度较长的链接压缩成较短的链接。并通过跳转的方式,将用户请求由短链接重定向到长链接上去。短链接主要用在诸如微博,BBS
芋道源码
2018/12/18
3.5K0
短链接服务Octopus的实现与源码开放
半年前(2020-06)左右,疫情触底反弹,公司的业务量不断提升,运营部门为了方便短信、模板消息推送等渠道的投放,提出了一个把长链接压缩为短链接的功能需求。当时为了快速推广,使用了一些比较知名的第三方短链压缩平台,存在一些问题:
Throwable
2020/12/29
1.1K0
面试官:如何实现一个短链接服务?
原文链接:https://javadoop.com/post/url-shortener
cxuan
2020/12/17
2.9K0
面试官:如何实现一个短链接服务?
永久短网址生成 可以永久使用的短链接推荐
微博、短信、微信在推送信息的时候都有字符的数量限制,如果分享一个长网址,很容易就超出限制,发不出去。短网址服务可以把一个长网址变成短网址,方便在社交网络上传播。
全栈程序员站长
2022/09/02
7K0
永久短网址生成 可以永久使用的短链接推荐
腾讯url短网址在线生成_腾讯(url.cn)短网址链接生成api接口
免费缩短网址缩短工具,提供安全的网址缩短、短网址生成服务及稳定的短网址API接口;具有稳定、快速、安全的特点,支持批量缩短、批量短网址还原、数据报表、开放API接口等服务。
用户2557763
2021/12/30
9.5K0
腾讯url短网址在线生成_腾讯(url.cn)短网址链接生成api接口
面试必备:如何将一个长URL转换为一个短URL?
前几天整理面试题的时候,有一道试题是《如何将一个很长的URL转换为一个短的URL,并实现他们之间的相互转换?》,现在想起来这是一个绝对不简单的问题,需要考虑很多方面,今天和大家一起学习研究一下!
Java后端技术
2018/08/09
7.8K0
面试必备:如何将一个长URL转换为一个短URL?
短链接生成太无聊?试试看长链接生成,URL地址变成乐谱音符🎵
用短链接替换较长的原始 URL,使得用户在访问网页或资源时可以使用更短、更便于记忆和分享的链接,也方便隐藏Get请求。
Mintimate
2023/09/23
6772
短链接生成太无聊?试试看长链接生成,URL地址变成乐谱音符🎵
设计一个系统将长链接地址转为短链接地址
最近遇到一个面试题,问请你设计一个系统将长链接转为短链接。起初回答的不是很好,之后通过自己思考和查阅资料将这块的内容进行整理。
翎野君
2023/05/12
1.2K0
设计一个系统将长链接地址转为短链接地址
推荐阅读
相关推荐
如何实现一个短链接服务 | 短链接生成原理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档