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

对索引的使用

原创
作者头像
Get
发布2024-03-12 21:27:21
1050
发布2024-03-12 21:27:21
代码语言:java
复制

什么情况下使用索引?
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值,那么这一列对于此复合索引就是无效的。
   所以我们在数据库设计时不要让字段的默认值为null。
2、使用短索引
   对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com