分享好友 最新动态首页 最新动态分类 切换频道
java 捕获mysql唯一索引 校验重复
2024-12-26 22:04


java 捕获mysql唯一索引 校验重复

9, wangwu, f, B

两个B+树索引分别如上图:

1、id为PK,聚集索引,叶子节点存储行记录;

2、name为KEY,普通索引,叶子节点存储PK值,即id;

既然从普通索引无法直接定位行记录,那普通索引的查询过程是怎么样的呢?

通常情况下,需要扫码两遍索引树。

例如:

select * from t where name=‘lisi’;

是如何执行的呢?

粉红色路径,需要扫码两遍索引树:

  1. 先通过普通索引定位到主键值id=5;
  2. 在通过聚集索引定位到行记录;

这就是所谓的回表查询,先定位主键值,再定位行记录,它的性能较扫一遍索引树更低。

**三、**什么是索引覆盖


MySQL官网,类似的说法出现在explain查询计划优化章节,即explain的输出结果Extra字段为Using index时,能够触发索引覆盖。

不管是SQL-Server官网,还是MySQL官网,都表达了:只需要在一棵索引树上就能获取SQL所需的所有列数据,无需回表,速度更快。

四、如何实现索引覆盖?


常见的方法是:将被查询的字段,建立到联合索引里去。

第一个SQL语句:

select id,name from user where name=‘shenjian’;

能够命中name索引,索引叶子节点存储了主键id,通过name的索引树即可获取id和name,无需回表,符合索引覆盖,效率较高。

第二个SQL语句:

select id,name,sex from user where name=‘shenjian’;

能够命中name索引,索引叶子节点存储了主键id,但sex字段必须回表查询才能获取到,不符合索引覆盖,需要再次通过id值扫码聚集索引获取sex字段,效率会降低。

如果把(name)单列索引升级为联合索引(name, sex)就不同了。

可以看到:

select id,name from user where name=‘shenjian’;

select id,name,sex from user where name=‘shenjian’;

都能够命中索引覆盖,无需回表。

五、哪些场景可以利用索引覆盖来优化SQL?


场景1:全表count查询优化

原表为:

user(PK id, name, sex);

直接:

select count(name) from user;

不能利用索引覆盖。

添加索引:

alter table user add key(name);

就能够利用索引覆盖提效。


最新文章
易优eyoucms专业版模板工业户外器材商城模板28751
交易流程发货方式1、自动:在上方保障服务中标有自动发货的商品,拍下后,将会自动收到来自卖家的商品获取(下载)链接;2、手动:未标有自动发货的的商品,拍下后,卖家会收到邮件、短信提醒,也可通过QQ或订单中的电话联系对方。交易周期
首例AI生成图片侵权案始末:原告胜诉放弃赔偿,有律师质疑判决
·中国首例AI生成图片著作权侵权案日前判决已生效,原告李昀锴胜诉后放弃被告500元赔偿。·李昀锴坦言,判决结果并不重要,更希望法院能够对使用AI来生成图片的创作是否构成作品,是否具备独创性给出一个明确的判断标准。整个2023年,李昀
华为问界m7人机互动
本文目录导读:华为问界M7人机互动系统的设计理念华为问界M7人机互动系统的功能特点华为问界M7人机互动系统的实际应用场景华为问界M7人机互动系统的优势和挑战随着科技的飞速发展,人工智能和自动驾驶技术已经成为了汽车行业的重要发展方向
同时生产三种战机,沈飞压力巨大,歼-16产量,会不会减产?
中国这几年在战斗机的研发上可以说是全面开花,传统的歼-15和歼-16,海军的歼-35,四代机的歼-20都是这些年面世的。然而,这种幸福之下也产生了一定的烦恼。每个企业的生产力都是有限制的,尤其生产飞机这种高精尖武器的厂家,每年能交付的
吉利汽车销量在国内市场的排名怎样?
吉利汽车在国内市场的销量排名情况在不同时期有所变化。近年来,吉利汽车的销量排名总体较为靠前。根据历史数据,2017 年,吉利汽车以130.52万辆的销量位居第七。进入2021年,吉利汽车的表现尤为突出。在2021年11月,吉利汽车销量排名第二
班务工作计划怎么(专业3篇)
一、班级基本情况分析班级整体情况良好,大部分同学学习态度认真,能够遵守学校规章制度,并在各类活动中取得较好成绩。自习课上,学生们能够集中精力完成作业,并保持课堂秩序。班级的常规工作也得到了正常开展。然而,也存在部分学生缺乏
快乐89日9分区走势图
功能类快乐8显示遗漏:显示/隐藏遗漏值,遗漏值是指自上期开出到本期间隔的期数。快乐8遗漏分层:是将当前遗漏值用柱状图形标注。快乐8分段线:是每五期使用分隔线,使横向导航更加清晰。快乐8显示断区:在分区走势中使用,将开出0个号码的
专业推荐:哪个智能写作工具用的比较好——免费文章生成助手助力论文写作
在选择论文写作软件时以下是几款值得推荐的工具:1. Grammarly:这是一个优秀的语法检查和风格改进工具不仅可检测拼写错误和语法疑惑还能提供风格上的建议,提升论文的专业性。2. Turnitin:主要用于抄袭检测,确信论文的原创性,同时它也
计算机视觉8—基于BOW模型的图像检索和匹配
目录 1.图像搜索 1.1 基于文本的图像检索 1.2基于内容的图像检索(CBIR ) 2.BOW模型图像检索流程 2.1BOW(Bag-of-words) 2.2Bag-of-features 2.3TF-IDF(词频-逆向文档频率) 2.3视觉单词 3.实验内容 3.1 数据集 3.2实验流程及代码 4总结
相关文章
推荐文章
发表评论
0评