首页 > 其他分享 >索引优化

索引优化

时间:2023-07-30 16:55:13浏览次数:40  
标签:20 name age 查询 索引 优化 SELECT

联合索引第一个字段如果是范围查询则不会走索引

如果第一个查询条件用范围查询,那么MySQL会以为你查询的表数据比较多,那么它就会进行全表扫描而不进行索引,,但是如果第一个查询条件是主键范围查询的话,它依旧会走索引,不过在开发中应该不需要进行主键范围查询。
主键范围查询

EXPLAIN SELECT * FROM `employees` WHERE id > 20 AND age = 20

image
如果使用别的字段进行范围查询的话则不会走索引

EEXPLAIN SELECT * FROM `employees` WHERE name > "" and  age > 20

image
如果进行相等查询的话可以正常走索引

EXPLAIN SELECT * FROM `employees` WHERE name = "" and  age > 20

image
force index强制使用索引
可以使用force index来强制表中字段走explain possible key的索引字段idx_name_age_position
image
如下所示

EXPLAIN SELECT * FROM `employees` force index(idx_name_age_position)  WHERE name > "li" and  age > 20;

但是MySQL走索引不一定比全表扫描快,有的时候,MySQL经过优化,全表扫描会比走索引快一些,全表扫描没有进行回表,反而比走索引快些。
走索引前查询需要0.360S
image
走索引后反而变慢了
image

or和in不一定后走索引

or和in,如果数据量不大则不会走索引,MySQL会根据表数据进行统计,如果数据量少的话,直接全表扫可能还快些,不然走索引之后还得回表扫描才能拿到数据
例如有两张相同的表,不同之处在于一张表数据多,一张表数据少,
如果进行查询时,数据少的表是没有走索引的:

EXPLAIN SELECT * FROM employees 

image
而数据多的表就可以直接走索引进行查询。

标签:20,name,age,查询,索引,优化,SELECT
From: https://www.cnblogs.com/lyraHeartstrings/p/17591398.html

相关文章

  • pytorch索引与切片
    indexinga=torch.randn(4,3,28,28)a[0].shape#torch.Size([3,28,28])a[0,0].shape#torch.Size([28,28])a[0,0,2,4]#tensor(0.6574)selectfirst/lastN这个a可以看成一个图片:[batch,RBG,h,w]a.shape#torch.Size([4,3,28,28])a[:2].shape#torch.Size......
  • js代码优化
    //案例:functionpreviewWeek(i){switch(i){case1:return'星期一'break;case2:return'星期二'break;case3:return'星期三'break;......
  • mysql 简单进阶 ———— 多列索引[一]
    前文整理一下mysql的一些简单进阶技巧,来源于高性能mysql,但不是根据书的序列来的。正文有一个问题,那就是我们为什么要创建多列索引呢?这是要思考的一个问题。为什么创建多列索引,而不是创建多个单列索引。需要弄明白这个问题,那么就需要知道索引是如何工作的。为什么有索引这个......
  • Mysql数据库中数据量特别大,读取特别慢,已经做了索引,怎么优化
    当MySQL数据库中的数据量特别大,读取操作变得特别慢,即使已经添加了索引,仍然需要进一步优化。下面是一些建议以及示例代码来优化这种情况:使用合适的索引:确保为频繁查询的列添加了合适的索引。可以使用EXPLAIN语句来分析查询的执行计划,检查是否正确使用了索引。示例代码:sqlCopycodeE......
  • 性能优化之详解各种指标
    前言上篇文章最后提到了我们可以通过performance的一些属性对性能做统计,我们会发现performance对象下有非常多的属性,远不止上篇文章提到的DOMContentLoaded与Load这两个事件。或许你在浏览器控制台见过它们这些身影:DCL、LCP、FP、FCP、L这里的DCL与L就是我们上篇文章介绍的DOMConte......
  • 性能优化之window.onload
    前言最近在做一些性能优化相关的工作,相信大家在工作过程中也会遇到一些性能优化相关的场景,这对于前端开发者来讲是一项加分技能。为了我们的用户在使用我们的产品时能够有一个非常好的体验,我们需要对页面进行诊断优化。在行业中,我们的页面P90在两秒内算是达标,超过这个时间那么你就......
  • 【Matlab】基于粒子群优化算法优化BP神经网络的数据分类预测
    【Matlab】基于粒子群优化算法优化BP神经网络的数据分类预测(Excel可直接替换数据)1.模型原理2.数学公式3.文件结构4.Excel数据5.分块代码5.1fun.m5.2main.m6.完整代码6.1fun.m6.2main.m7.运行结果1.模型原理“基于粒子群优化算法优化BP神经网络的数据分类预测”是一种结合了粒......
  • 前端性能优化策略:加速网页加载时间的关键技巧
    引言:在当今互联网时代,网页加载速度是提供出色用户体验的关键因素之一。快速加载的网页不仅可以吸引更多用户,还可以提高转化率和搜索引擎排名。因此,前端性能优化成为每个开发人员和网站所有者都应该关注的重要议题。本文将介绍一些关键的前端性能优化策略,帮助您加速网页加载时间并......
  • 项目优化调优
    啊 一个用户充值时会有多种优惠,默认给用户最高的,为了提升这方面的速度,采用countDownLatch每种优惠计算一下最后金额,返回最低金额。40ms降到20ms  立减的时候,qps较高,还是用多线程降低rt,但是并没有降,load急速上升。拆分表,按业务拆分 春节档玩法多,某个值到了才能参加活......
  • 并查集优化 - 按大小合并时间复杂度证明
    并查集优化-按大小合并时间复杂度证明if(sz[b[x]].size()>sz[b[y]].size())swap(x,y);对于每个元素,当它当前所在的集合中,需要有其它大于该集合大小的集合,才会被遍历如果元素在一个大小\(1\)的集合中,会转移到大小\(2\)的集合中如果元素在一个大小\(2\)的集合中,会......