索引的使用原则

        1.最左前缀法则

 若索引了多列,即使用了联合索引,则必须要遵守该法则,指的是查询索引的最左列必须存在,并且不跳过索引中的任何一列,若跳过了某一列,则该列后面的索引字段全部失效。

查询使用的索引,位置顺序不重要,重要的是是否跳过?最左列的字段是否存在?

        2.范围查询

解决方法:允许的话把大于,小于改为大于等于或小于等于即可

        3.索引列上使用运算操作导致索引失效

        4.字符串忘记添加单引号导致索引失效

        5.仅仅是尾部模糊匹配,索引不会失效,但若是头部模糊匹配,则索引将会失效

        6.用关键字 or 分隔的条件,若or前的列有索引,后面没有索引,则所有索引都不会被使用

        7.当MySQL认为全表扫描比使用索引更快,则不会使用索引。

        8.SQL提示,在表名后加上use(ignore,force) 和 index(索引名)

use:让MySQL使用该索引,但MySQL可以不使用

ignore:让MySQL忽略该索引

force:强制MySQL使用该索引

        9.使用覆盖索引,避免使用 select * ,查询使用了索引,并且需要返回的列

即查询的列中尽量是建立了索引的列,且需要的数据在索引列中都能找到

        10.前缀索引

语法:create index idx_xxx on table_name(column(n))  //n为前缀长度

        11.单列索引和联合索引,存在多个查询条件时,推荐使用联合索引,创建联合索引时要考虑顺序,因为最左前缀法则的存在。

        12.索引的设计原则

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值