MySQL的索引和复合索引

news/2024/6/17 10:09:26 标签: mysql, 数据库

由于MySQL自动将主键加入到二级索引(自行建立的index)里,所以当select的是主键或二级索引就会很快,select *就会慢。因为有些列是没在索引里的
假设CA有1kw人咋整,那我这个索引只起了前一半作用。
在这里插入图片描述
在这里插入图片描述
所以用复合索引,那么复合索引的列索引顺序也很重要,首先肯定要把最重要的像分类的排第一,其次是索引的区分度高的(性别只能分出两类,索引效果N/2,不如居住的state,索引效果N/48)
最重要的是你的查询,如下两图,看看怎么能更好的区分,后一种查询的row更少
在这里插入图片描述
在这里插入图片描述
假设复合索引是对(state, points)复合的,那么用其排序也是有说道的,下面三个都是能利用到索引的排序,因为索引先将a排序然后按b排序存储的,如图所示(当然如果WHERE state = 'CA’然后对points排序也肯定是利用到了索引的)

  • state
  • state, points
  • state DESC, points DESC
    在这里插入图片描述

http://www.niftyadmin.cn/n/5172608.html

相关文章

CSDN写博文的128天

起因 为什么要写博文? 写博文是因为当我还是编程小白时,我那会啥也不懂,不懂函数调用,不懂指针,更不懂结构体,别更说Linux,平时不会也没有可以问的人,也幸好有CSDN,遇到…

代码随想录 Day43 动态规划11 LeetCode T309 买卖股票的最佳时期含冷冻期 T714买卖股票的最佳时机含手续费

LeetCode T309 买卖股票的最佳时机含冷冻期 题目链接:309. 买卖股票的最佳时机含冷冻期 - 力扣(LeetCode) 题目思路: 这题其实就是将卖出的状态拆分成三个状态 1.前两天就卖出并一直保持卖出的状态 2.今天卖出的状态 3.今天是冷冻期的状态 当然还有一个…

redis监听key失效

前言 ​ 使用redis进行大数据量信息存储时,如存储百万级别设备/通道信息,如果我们想获取设备/通道是否失效,常规的方法是定时获取,但是这样对于应用来说太消耗性能。 ​ redis提供了一种key事件监听的机制,应用可以监…

UPLAOD-LABS2

less7 任务 拿到一个shell服务器 提示 禁止上传所有可以解析的后缀 发现所有可以解析的后缀都被禁了 查看一下源代码 $is_upload false; $msg null; if (isset($_POST[submit])) {if (file_exists($UPLOAD_ADDR)) {$deny_ext array(".php",".php5&quo…

【JAVA学习笔记】 68 - 网络——TCP编程、UDP编程

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter21/src 网络 一、网络相关概念 1.网络通讯 1.概念:两台设备之间通过网络实现数据传输 2.网络通信:将数据通过网络从一台设备传输到另一台设备 3. java.net包下提供了一系列的类或接口&a…

深度学习之基于Django+Tensorflow商品识别管理系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 项目简介 本系统是一个基于DjangoTensorflow的商品识别管理系统。通过深度学习技术,实现商品的自动识别…

【CSS】全局声明引入自定义字体

以下用vue项目为例,其他的也是类似! 在Vue.js中可以使用全局样式表来定义字体。通常,可以在项目中的主样式表中定义全局字体,然后确保该样式表在整个应用程序中被引入。 以下是一般的步骤: 在项目中创建一个全局样式…

Day03:注意事项、this关键字、构造器、JavaBean、String、ArrayList

OOP的注意事项 类名要跟class文件名一致(一个class可以有多个类,但只有一个public,且与文件名一致),命名介意大驼峰;如果某个对象没有变量指向他,就成垃圾对象了(空指针&#xff09…