组合索引及SQL性能级别

1.什么是组合索引

     创建的索引时,添加的索引至少包含两列的就是组合索引,组合索引遵循最左前缀,通常将最常用的列放到最左边,组合索引实际上不是一个索引,而是多个

creat index index_name on table_name (column1,column2,column3)
-- 实际创建的索引有 (column1),(colume1,column2),(,colume1,column2,column3)
-- 举例:
  CREATE index mul on t_user (id,username,type)
  -- 只有以下三种情况查询走索引
  EXPLAIN select * from t_user where id =1 
  EXPLAIN select * from t_user where id =1 and  username = 'admin' 
  EXPLAIN select * from t_user where id =1 and  username = 'admin' and type =1 

-- 索引可以加快查询但是会降低表更新速度
-- 大数据量内容的字段添加索引可能导致索引失效
-- order by(主键)性能更好,使用其他索引排序,不能提升性能

2.性能级别

     system>const>eq_ref>ref>range>index>ALL,其中

     1.system,const为理想状态,system出现的情况为只有一条数据的系统表或衍生表只能有一条数据的主查询

     2.const出现的情况为,仅仅能查出一条的SQL语句并且用于Primary key 或 unique索引

    3.eq_ref常见的情况为唯一索引查询和主键索引查询

    4.ref 非唯一性索引

    5.range 搜索一定范围

    6.index 查询全部索引中的数据

    7.all 全表查询

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值