首页 > 数据库 >mysql优化--索引

mysql优化--索引

时间:2023-07-31 21:56:51浏览次数:37  
标签:-- mysql 查询 索引 使用 select

mysql优化--索引

Mysql索引大概有五种类型:

普通索引(INDEX):最基本的索引,没有任何限制
唯一索引(UNIQUE):与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。
主键索引(PRIMARY):它 是一种特殊的唯一索引,不允许有空值。
全文索引(FULLTEXT ):可用于 MyISAM 表,mysql5.6之后也可用于innodb表, 用于在一篇文章中,检索文本信息的, 针对较大的数据,生成全文索引很耗时和空间。
联合(组合)索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。

1.针对使用联合索引时,遵循”最左前缀“原则

   效率从高到低:使用全部索引>部分索引(包含第一个)>不走索引(不包含第一个索引)

 

(1):第一个字段使用模糊查询

第一个字段使用模糊查询对之后的查询条件使用索引是没有影响的。

(3):使用between关键字范围查询

explain select * from t where c1 between '1' and '3' and c2 = '1' and c3 = '1' and c4 = '1';

全索引匹配。

(4):使用“>”“<”进行范围查询

使用 > < 的时候,会对索引产生影响,通过上边的查询结果我们可以发现当第一个字段使用范围查询之后,后边的条件便不会再走索引了。

 

EXPLAIN Output Columns

列名说明
id 执行编号,标识select所属的行。如果在语句中没子查询或关联查询,只有唯一的select,每行都将显示1。否则,内层的select语句一般会顺序编号,对应于其在原始语句中的位置
select_type 显示本行是简单或复杂select。如果查询有任何复杂的子查询,则最外层标记为PRIMARY(DERIVED、UNION、UNION RESUlT)
table 访问引用哪个表(引用某个查询,如“derived3”)
type 数据访问/读取操作类型(ALL、index、range、ref、eq_ref、const/system、NULL)
possible_keys 揭示哪一些索引可能有利于高效的查找
key 显示mysql决定采用哪个索引来优化查询
key_len 显示mysql在索引里使用的字节数
ref 显示了之前的表在key列记录的索引中查找值所用的列或常量
rows 为了找到所需的行而需要读取的行数,估算值,不精确。通过把所有rows列值相乘,可粗略估算整个查询会检查的行数
Extra 额外信息,如using index、filesort等


标签:--,mysql,查询,索引,使用,select
From: https://www.cnblogs.com/caoaman/p/17594599.html

相关文章

  • 【13.0】DRF之接口文档
    【一】引入后端把接口写好后登录接口注册接口查询所有图书带过滤接口前端人员需要根据接口文档,进行前端开发前后端需要做对接---->对接第一个东西就是这个接口文档--->前端照着接口文档开发后端编写接口:后端团队负责设计和实现系统中的各个接口,根据业务需求完......
  • 【补充】docker-compose部署Yapi
    【补充】docker-compose部署Yapi参考博客:docker-compose部署Yapi-知乎(zhihu.com)【1】了解DockerCompose:DockerCompose是Docker官方推出的一个用于定义和运行多个Docker容器的工具。通过使用DockerCompose,你可以使用一个单独的yaml文件来定义多个相关的服务,然后使......
  • 【补充】什么是mock数据
    【补充】什么是mock数据【1】介绍Mock数据是在软件开发过程中使用的一种方式,它用于模拟真实数据源的数据,并且具有相似的数据结构和字段。Mock数据通常被用作在实际的数据源不可用或者无法获得时进行开发、测试和演示。Mock数据的主要目的是在软件开发的早期阶段就提供可......
  • 新增员工_需求分析和设计
           ......
  • HTML
    HTML详解初始HTMLHTMLHyperTextMarkupLanguage(超文本标记语言)W3C标准W3CWorldWideWebConsortium(万维网联盟)W3C标准包括结构化标准语言(HTML、XML)表现标准语言(CSS)行为标准(DOM/ECMAScript)<!--DOCTYPE:告诉浏览器,我们要是使用什么规范--><!DO......
  • oh my zsh 安装教程
    ohmyzsh安装一、安装zsh安装oh-my-zsh需要首先安装zsh使用以下命令安装zsh,若其他linux系统可以使用yum来安装,不再赘述sudoaptinstallzsh二、安装oh-my-zshoh-my-zsh官网:https://ohmyz.sh/#install执行命令如下命令直接进行安装sh-c"$(curl-fsSLhttps://raw.g......
  • 剑指 Offer 30. 包含min函数的栈(简单)
    题目:classMinStack{public:stack<int>st1;//维护原栈stack<int>st2;//维护最小值的栈/**initializeyourdatastructurehere.*/MinStack(){}voidpush(intx){st1.push(x);......
  • 雷达中ADC的采样率、采样时间、采样周期
     这一篇记录一下关于雷达采样率、采样时间和采样周期的相关知识,方便后面再用到的时候能够很快的找到。同时也希望能帮助到大家一点。话不多说,进入主题。        本文主要学习三个东西采样率、采样时间和采样周期。分别对三者有一个大概的描述,最后会通过一个例子便于......
  • 6、Mysql操作数据库以及数据表
    学习sql规则,可以让mysql服务器帮咱们做其他操作1、操作数据库(文件夹)createdatabase数据库名defaultcharsetutf8;表示整个数据库是utf8的格式 use数据库名;使用这个数据库 查看数据库showdatabases; 删除数据库dropdatabase数据库名;数据库没有修改这一说......
  • 《摆与混》第二十七章--7月21日--周一
    周一,新的一周,加油!!!1.今天做了什么:今天9点起床。洗漱后,去楼下吃了碗拌粉,非常好吃,早上依旧小学一会儿,顺便帮来问问题的哥们答疑解惑,中午午休了一下,下午小小的摆烂,5点带上弟弟去健身(他实在是太虚了),晚上经典PTA。2.解决了什么问题:Java课程接近大半,PTA继续冲击,加快了进度。3.明天干什......