花1分钟时间,了解聚集索引,非聚集索引,联合索引,索引覆盖。
举例,业务场景,用户表,表结构为:
t_user( uid primary key, login_name unique, passwd, login_time, age, … );
聚集索引(clustered index):聚集索引决定数据在磁盘上的物理排序,一个表只能有一个聚集索引,一般用primary key来约束。
举例:t_user场景中,uid上的索引。
非聚集索引(non-clustered index):它并不决定数据在磁盘上的物理排序,索引上只包含被建立索引的数据,以及一个行定位符row-locator,这个行定位符,可以理解为一个聚集索引物理排序的指针,通过这个指针,可以找到行数据。
举例,查找年轻MM的业务需求:
select uid from t_user where age > 18 and age < 26;
age上建立的索引,就是非聚集索引。
联合索引:多个字段上建立的索引,能够加速复核查询条件的检索
举例,登录业务需求:
select uid, login_time from t_user where login_name="color: #ff0000">联合索引能够满足最左侧查询需求,例如(a, b, c)三列的联合索引,能够加速a | (a, b) | (a, b, c) 三组查询需求。这也就是为何不建立(passwd, login_name)这样联合索引的原因,业务上几乎没有passwd的单条件查询需求,而有很多login_name的单条件查询需求。
提问:
select uid, login_time from t_user where passwd="color: #ff0000">最左侧查询需求,并不是指SQL语句的写法必须满足索引的顺序(这是很多朋友的误解)索引覆盖:被查询的列,数据能从索引中取得,而不用通过行定位符row-locator再到row上获取,即“被查询列要被所建的索引覆盖”,这能够加速查询速度。
举例,登录业务需求:
select uid, login_time from t_user where login_name="htmlcode">select * from order where status!=2 select * from order where status=0 or status=1 select * from order where status IN (0,1) select * from order where status=0 union select * from order where stauts=1总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“通过一分钟快速了解索引技巧”评论...
更新日志
2024年05月10日
2024年05月10日
- 逆水寒手游五子棋第二十七关怎么过 逆水寒手游残局攻略大全
- 赵传1988-我很丑可是我很温柔[日本天龙刻字1B2版][WAV]
- [EAC]KOKIA吉田亚纪子--Fate[WAV]
- 云水谣《小调江南3·油纸煞APE+CUE
- 《地狱潜者2》社区经理傲慢回应:不愿绑定就留差评
- 国外《地狱潜者2》玩家缅怀中国玩家:你是我的英雄
- 曝《GTA6》女主演员已被确认!曾配音《GTA Online》
- 群星.2013-极品对唱篇LPCD45【环球】【WAV+CUE】
- 二手玫瑰.2010-人人有颗主唱的心【糖衣文化】【WAV+CUE】
- 林佳蓉&许淑絹.1985-春天帶來新希望(滚石新格民歌系列32)【新格】【WAV+CUE】
- 逆水寒手游五子棋第二十六关怎么过 逆水寒手游残局攻略大全
- 逆水寒手游五子棋第二十五关怎么过 逆水寒手游残局攻略大全
- 逆水寒手游五子棋第二十四关怎么过 逆水寒手游残局攻略大全
- 【索尼精芽SueyePark-爱的礼赞(最爱的小提琴名曲集)(24-96)FLAC
- 翁倩玉-翁倩玉之歌[FLAC]