首页 > 数据库 >mysql 联合索引的两种特殊场景

mysql 联合索引的两种特殊场景

时间:2024-03-29 21:44:59浏览次数:30  
标签:场景 time id 索引 biz mysql line order

1、某些场景下可以把筛选力度小的字段在联合索引中的字段顺序提前

我们都知道,联合索引比对每个列分别建索引更有优势,因为索引建立得越多就越占磁盘空间,在更新数据的时候速度会更慢。另外建立多列索引时,顺序也是需要注意的,应该将严格的索引放在前面,这样筛选的力度会更大,效率更高。

但是如果某字段的值是唯一对应另一个字段的值,那么可以考虑把筛选力度小的放在前面,比如:

每个订单唯一所属于一个业务线,如果把order_id字段放在联合索引第一个字段,索引为 (order_id, biz_line) ,其实就没必要加biz_line索引了,但是如果把biz_line放在索引第一个字段(假设order_id查询时总能携带上业务线),索引为 (biz_line, order_id) 可以省去一个biz_line单列索引的存储开销,又能满足我们的索引查询要求。

select * from order_log where biz_line = 10 and order_id in(111, 222, 333);

2、同个 sql 里需要对多个字段进行范围查询时,选择筛选力度大的字段作为索引

一般来说,建索引时优先选择筛选力度大的字段作为索引字段,比如同个 sql 里需要对多个字段进行范围查询时,选择筛选力度大的字段作为索引,比如下面这个 sql,create_time做大于比较,update_time做小于比较,一般来说做大于比较查询结果数较少(小于比较会查询建表至边界值的所有记录),所以应该把create_time作为索引字段,而不是 update_time

select * from order_log where biz_line = 10 and create_time > 10 and update_time < 100 limit 1000;

标签:场景,time,id,索引,biz,mysql,line,order
From: https://www.cnblogs.com/hi3254014978/p/18104671

相关文章

  • 安装 mysql 8-yum
    OperatingSystem:AlibabaCloudLinux3(SoaringFalcon)Arch:x86_64mysql-8.0.32--- 序章再安装一次MySQL,这次是在类CentOS的AlibabaCloudLinux3系统上进行,使用yum安装。 安装步骤说明,全程使用root账号安装(存在风险)。 yum搜索#yumsearchm......
  • driver-class-name: com.mysql.jdbc.Driver爆红解决方式
    目录问题解决方式一:手动添加mysql的jar包问题问题:在springboot项目工程中想要进行数据库配置,在application.yml中添加以下代码:#数据库配置spring:datasource:driver-class-name:com.mysql.cj.jdbc.Driverusername:root#你本地的数据库用户名password......
  • KingbaseES 索引unusable的使用
    前言KingbaseES中,索引不可用原则介绍oracle数据库中,如果索引不可用(unusable),在进行DML操作时,会触发报错:索引不可用。在KES中如果设置索引不可用,插入数据不会报错,因为当索引被置为不可用状态后,如果要重新启动索引需要rebuild索引,此时会在新索引中重新组织表tuple数据。insert......
  • 说说HTTP 常见的状态码有哪些,适用场景?
     一、是什么HTTP状态码(英语:HTTPStatusCode),用以表示网页服务器超文本传输协议响应状态的3位数字代码它由RFC2616规范定义的,并得到 RFC2518、RFC2817、RFC2295、RFC2774与 RFC4918等规范扩展简单来讲,http状态码的作用是服务器告诉客户端当前请求响应的状态,通过状态......
  • Node+Vue毕设音乐制作资源分享网站(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在音乐创作和制作的领域,资源的获取与分享一直是创作者们非常关注的话题。随着互联网的普及与发展,人们越来越倾向于通过网络平台交流思想、分享作品以及寻找......
  • Node+Vue毕设音乐推荐网站(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在当今信息化时代,音乐已经成为人们生活中的重要元素之一。随着互联网技术的不断发展,人们对于音乐的消费方式也在发生着翻天覆地的变化。传统的音乐传播方式......
  • Python数据库编程全指南SQLite和MySQL实践
    1.安装必要的库首先,我们需要安装Python的数据库驱动程序,以便与SQLite和MySQL进行交互。对于SQLite,Python自带了支持;而对于MySQL,我们需要安装额外的库,如mysql-connector-python。#安装MySQL连接器pipinstallmysql-connector-python2.连接SQLite数据库SQLite是一......
  • 【Nuxt3】使用内置方法获取网络数据和使用场景
    简言记录下如何使用useFetch和$fetch的使用方法和它们的使用场景。获取数据nuxt3内置了很多方法来获取网络数据。这些方法有:useAsyncData—useAsyncData可以访问以SSR友好的可组合方式异步解析的数据。useFetch—使用SSR友好型可组合程序从API端点获取数据......
  • python根据达芬奇场景分析保存的edl文件,智能裁切输出4K视频画面(不带声音)-自动找到MP
    使用前先将mp4对应的EDL文件命名为相同的名字,如:春天.mp4,春天.edl只处理持续时间大于5帧的画面批量处理指定文件夹下所有文件,处理失败的直接跳过,接着继续处理其他的 importcv2importosimporttimeimportdatetimeimportshutilfrommoviepy.editorimportVideoFile......
  • MySQL - [06] 海贼王测试数据
     一、建表语句createtablerole(roleIdintnullcomment'角色id',namevarchar(32)nullcomment'姓名',apearNumvarchar(50)nullcomment'登场集数',addressvarchar(50)nullcomment'上传地点',......