mysql索引abc,a=1 and c=2是否可使用索引_sql联合索引

mysql索引abc,a=1 and c=2是否可使用索引_sql联合索引在一次查询中,MySQL只能使用一个索引。在真实项目中,SQL语句中的WHERE子句里通常会包含多个查询条件还会有排序、分组等。若表中索引过多,会影响INSERT及UPDATE性能,简单说就是会影响数据写入性能。因为更新数据的同时,也要同时更新索引。最实际的好处当然是查询速度快,性能好。MYSQL中常用的强制性操作(例如强制索引)https://www.jb51.net/article/49807…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在一次查询中,MySQL只能使用一个索引。

在真实项目中,SQL语句中的WHERE子句里通常会包含多个查询条件还会有排序、分组等。

若表中索引过多,会影响INSERT及UPDATE性能,简单说就是会影响数据写入性能。因为更新数据的同时,也要同时更新索引。

最实际的好处当然是查询速度快,性能好。

MYSQL中常用的强制性操作(例如强制索引)

https://www.jb51.net/article/49807.htm

SELECT * FROM TABLE1 FORCE INDEX (FIELD1) …

建索引参考的原则 :

一个表有3列 ,a,b,c 说出3种索引,能够在查询的时候用到 a,b,c,bc,ac,abc .

abc (a,bc,abc)

bc (c,bc)

ca (c)

用 查询bc 的时候用不到abc和ac 索引。

使用联合索引应该注意:

MySQL使用联合索引只能使用左侧的部分,例如INDEX(a,b,c),当条件为a或a,b或a,b,c时都可以使用索引,但是当条件为b,c时将不会使用索引。这好比一本先根据姓,再根据名进行排序的电话簿,当查找的时候有姓的条件,效率会比没有任何条件高;如果在姓的基础上还有名的条件,效率会更高;但若只有名的条件,电话簿将不起作用。离散度更高的索引应该放在联合索引的前面,因为离散度高索引的可选择性高。考虑一种极端的情况,数据表中有100条记录,若INDEX(a,b)中a只有两种情况,而b有100种情况。这样对于查询唯一记录a = …,b = …时,先遍历全部索引

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196876.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 多边形内有2枚钉子的图形_当多边形内没有钉子

    多边形内有2枚钉子的图形_当多边形内没有钉子Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 24 Accepted Submission(s) : 7Problem DescriptionStatement of the Problem Several drawing applications allow us to draw polygons and almost all of the

    2022年8月9日
    7
  • 关于代价函数的理解「建议收藏」

    关于代价函数的理解「建议收藏」假设拟合直线为,代价函数(costfunction)记为则代价函数:为什么代价函数是这个呢?首先思考:什么是代价?简单理解代价就是预测值和实际值之间的差距,那对于多个样本来说,就是差距之和。如果我们直接使用,这个公式看起来就是表示假设值和实际值只差,再将每一个样本的这个差值加起来不就是代价了吗,但是想一下,如果使用这个公式,那么就单个样本而言,代价有正有负,全部样本的代价加起来有可能正负

    2022年6月7日
    34
  • laravel 中配置文件.env解读

    laravel 中配置文件.env解读laravel 中配置文件.env解读

    2022年4月24日
    50
  • 能与PowerDesigner媲美的数据库建模工具PDMan[通俗易懂]

    软件生存周期分为:1、可行性分析与项目开发计划2、需求分析3、概要设计4、详细设计5、编码6、测试7、维护而数据库建模工作就发生在“编码”之前,“概要设计”与“详细设计”中。在设计数据库时,对现实世界进行分析、抽象、并从中找出内在联系,进而确定数据库的结构,这一过程就称为数据库建模。当然,一款实用、便利的工具,会使我们的工作效率大大提高,今天我们就来介绍一款能与PowerD…

    2022年4月8日
    250
  • jquery插件treetable 动态加载问题

    jquery插件treetable 动态加载问题使用jquery插件treetable增加后刷新table时,树形样式丢失在增加或修改后,动态加载html,开始就直接使用$(“#treeTabletbody”).empty().append(data);这个用法是错误的,后来换成//成功后刷新表格 $(“#treeTabletbody”).empty();varhtml=data.htmlTable;…

    2022年5月27日
    130
  • 开发一个属于自己的app

    开发一个属于自己的app

    2021年9月18日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号