当前位置: 首页 > news >正文

怎么给数据库某个字段建立一个前缀索引

说明:SQL调优中重要的一个环节是建立索引,其中有一条是字段值过长字段应该建立前缀索引,即根据字段值的前几位建立索引,像数据库中的密码字段、UUID字段。

因为其随机性,其实根据前几位就可以锁定某一条记录了。前缀索引可以用尽可能少的代价得到目的,毕竟索引也是需要内存和维护成本的。本文介绍如何建立一个前缀索引。

索引的长度怎么选?

建立前缀索引前,我们需要知道选该字段值的前几位建立索引,要求是根据前缀的这部分就可以锁定某一条数据。比如,我下面的这张表,有1000万条记录,我想对password字段建立前缀索引;

在这里插入图片描述

可以敲下面这个SQL,找出前缀索引的长度;

# password字段值前10位去重后的数量 / 所有记录数
select count(distinct left(password,10))/count(*) from user;

这里是计算出password字段前几位字段值,并且去重后的数量,如果等于1,说明password字段的前几位互不相同,说明根据这个长度来建立前缀索引就够了。

(前9位,不等于1,还不行)

在这里插入图片描述

(前10位,等于1,说明10位足够区分)

在这里插入图片描述

这个过程需要一定时间,但是总会找到的。

建立前缀索引

建立前缀索引之前,先执行一条查询SQL,看需要多久。

select * from user where password = 'c81e728d9d4c2f636f067f89cc14862c';

22秒,足够慢;

在这里插入图片描述

敲下面的SQL,给password字段值的前10位建立索引,password_prefix_index是索引名,password(10)表示前10位

# 给user表中的password字段前10位建立索引
create index password_prefix_index on user(password(10));

执行完成;

在这里插入图片描述

查看效果

再执行前面的那条查询SQL,看下效果,执行时间128ms,速度显著提升;

在这里插入图片描述

看下执行计划,可以看到走了索引;

在这里插入图片描述

到这,给数据库某字段建立前缀索引就完成了,重点是获取前缀索引的长度。

在这里插入图片描述

相关文章:

怎么给数据库某个字段建立一个前缀索引

说明:SQL调优中重要的一个环节是建立索引,其中有一条是字段值过长字段应该建立前缀索引,即根据字段值的前几位建立索引,像数据库中的密码字段、UUID字段。 因为其随机性,其实根据前几位就可以锁定某一条记录了。前缀索…...

C# 图片下载工具类

写在前面 从浏览器的Html文本中获取图片链接并保存到本地,同时对图片的分辨率和品质进行处理,以满足某些平台的规格需求;可以放到多线程中调用以提高下载效率。 代码实现 public class ImageDownloader{private int minImageSize 1024 * 1…...

嵌入式硬件电路·电平

目录 1. 电平的概念 1.1 高电平 1.2 低电平 2. 电平的使用场景 2.1 高电平使能 2.2 低电平使能 2.3 失能 1. 电平的概念 电平是指电信号电压的大小或高低状态。在数字电子学中,电平有两种状态,高电平和低电平,用来表示二进制中…...

Python文件路径常用操作

1 文件路径 在进行数据处理时,经常要用代码去读文件里的数据,那么首先就得知道这个文件的文件路径。文件路径简单地说就是文件的存放位置。文件路径分为两块:文件夹路径和文件名,文件名又分为文件基本名和扩展名。 举例说明&…...

Redis-Redis 高并发分布式锁

集群分布式场景高并发 1.negix配置代理和路由 高并发场景超卖问题 1.使用原生redis控制超卖时(若是商品,则可以将商品id作为锁对象),会遇到的问题 问题一:若直接使用:将获取锁的对象和设置的超时的时间分开,则不能控…...

【推荐系统】MMOE笔记 20231126

paper阅读 任务差异带来的固有冲突实际上会损害至少某些任务的预测,特别是当模型参数在所有任务之间广泛共享时。(在说ESMM) 共享底层参数可以减少过拟合风险,但是会遇到任务差异引起的优化冲突,因为所有任务都需要在…...

4. 标准 IO 库

4. 标准 IO 库 1. 标准 IO 简介2. FILE 指针3. 标准输入、标准输出和标准错误4. fopen() 和 flose()5. fread() 和 fwrite()6. fseek 定位7. 检查或复位状态7.1 feof()7.2 ferrof()7.3 clearerr() 8. 格式化 IO8.1 格式化输出8. 2 格式化输入 9. IO 缓冲9.1 文件 IO 的内核缓冲…...

SAP Smartform小结

SAP系统做打印单据用的, 感觉很不好用, 特别是要嵌入韩文时必须使用嵌入的word编辑器,运行速度简直不可忍受. 见过一些Adobe interactive form的示例, 看着相当不错, 不过据说需要花money额外买licence, 哪有smartform这种免费东西来得实惠. 一般打印需求,会要求有标题抬头,打…...

KVM虚拟机的NAT网络模式原理及过程展示

NAT的方式及原理 NAT方式是KVM安装后的默认方式。 它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。 default是宿主机安装虚拟机支持模块的时候自动安装的。 其中 virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接…...

亚马逊云科技向量数据库助力生成式AI成功落地实践探秘(一) ​

随着大语言模型效果明显提升,其相关的应用不断涌现呈现出越来越火爆的趋势。其中一种比较被广泛关注的技术路线是大语言模型(LLM)知识召回(Knowledge Retrieval)的方式,在私域知识问答方面可以很好的弥补通…...

C# MemoryCache的使用和封装

封装个缓存类,方便下次使用。 using Microsoft.Extensions.Caching.Memory; using System; using System.Collections.Generic;namespace Order.Core.API.Cache {public class GlobalCache C#有偿Q群:927860652{private static readonly MemoryCache …...

【nlp】4.2 nlp中标准数据集(GLUE数据集合中的dev.tsv 、test.tsv 、train.tsv)

nlp中标准数据集 1 GLUE数据集合介绍1.1 数据集合介绍1.2 数据集合路径2 GLUE子数据集的样式及其任务类型2.1 CoLA数据集文件样式2.2 SST-2数据集文件样式2.3 MRPC数据集文件样式2.4 STS-B数据集文件样式2.5 QQP数据集文件样式2.6 (MNLI/SNLI)数据集文件样式2.7 (QNLI/RTE/WNLI…...

Java LinkedList

LinkedList 一个双向链表。 本身是基于链表进行封装的列表, 所以具备了链表的特性: 变更简单, 容量是无限的, 不必像数组提前声明容量等。 同时 LinkedList 支持存储包括 null 在内的所有数据类型。 1 链表 了解 LinkedList 之前, 我们需要先了解一下双向链的特点 单链表, 双…...

【单片机学习笔记】STC8H1K08参考手册学习笔记

STC8H1K08参考手册学习笔记 STC8H系列芯片STC8H1K08开发环境串口烧录 STC8H系列芯片 STC8H 系列单片机是不需要外部晶振和外部复位的单片机,是以超强抗干扰/超低价/高速/低功耗为目标的 8051 单片机,在相同的工作频率下,STC8H 系列单片机比传统的 8051约快12 倍速度…...

RevCol:可逆的柱状神经网络

文章目录 摘要1、简介2、方法2.1、Multi-LeVEl ReVERsible Unit2.2、可逆列架构2.2.1、MACRo设计2.2.2、MicRo 设计2.3、中间监督3、实验部分3.1、图像分类3.2、目标检测3.3、语义分割3.4、与SOTA基础模型的系统级比较3.5、更多分析实验3.5.1、可逆列架构的性能提升3.5.2、可逆…...

HCIA-RS基础-RIP路由协议

前言: RIP路由协议是一种常用的距离矢量路由协议,广泛应用于小规模网络中。本文将详细介绍RIP路由协议的两个版本:RIPv1和RIPv2,并介绍RIP的常用配置命令。通过学习本文,您将能够掌握RIP协议的基本原理、RIPv1和RIPv2的…...

虚拟化逻辑架构: LBR 网桥基础管理

目录 一、理论 1.Linux Bridge 二、实验 1.LBR 网桥管理 三、问题 1.Linux虚拟交换机如何增删 一、理论 1.Linux Bridge Linux Bridge(网桥)是用纯软件实现的虚拟交换机,有着和物理交换机相同的功能,例如二层交换&#…...

【Spring之AOP底层源码解析,持续更新中~~~】

文章目录 一、动态代理1.1、ProxyFactory1.2、Advice的分类1.3、Advisor的理解 二、创建代理对象的方式2.1、ProxyFactoryBean2.2、BeanNameAutoProxyCreator2.3、DefaultAdvisorAutoProxyCreator 三、Spring AOP的理解3.1、AOP中的概念3.2、Advice在Spring AOP中对应API3.3、T…...

C语言:有一篇文章,共三行文字,每行有80个字符。要求分别统计出单词个数、空格数。

分析&#xff1a; #include<stdio.h>&#xff1a;这是一个预处理指令&#xff0c;将stdio.h头文件包含到程序中&#xff0c;以便使用输入输出函数。 int main()&#xff1a;这是程序的主函数&#xff0c;是程序执行的入口点。 char a[3][80];&#xff1a;定义了一个二维…...

【数据结构与算法篇】一文详解数据结构之二叉树

树的介绍及二叉树的C实现 树的概念相关术语树的表示 树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一 个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c; 也就是说它是根朝上&#xff0c;而叶朝…...

如何批量创建SQL存储过程_使用脚本自动化部署流程

最稳妥的批量建存储过程方法是&#xff1a;SQL Server用sp_executesql逐个执行CREATE OR ALTER PROCEDURE&#xff1b;PostgreSQL用DO块pg_proc校验后EXECUTE&#xff1b;MySQL避免DELIMITER误替换&#xff0c;改用客户端分隔符控制。SQL Server 里用 sp_executesql 动态生成存…...

STM32 FSMC DMA驱动LVGL刷新优化:从原理到3.5寸屏实战避坑

1. FSMC与DMA加速LVGL刷新的核心原理 第一次在STM32上跑LVGL时&#xff0c;最让我头疼的就是刷新卡顿问题。后来发现&#xff0c;传统的像素点逐行写入方式就像用吸管转移游泳池的水——效率实在太低。这里面的关键突破在于理解FSMC&#xff08;Flexible Static Memory Control…...

PS2键盘鼠标接口电路设计实战指南

1. PS/2接口的前世今生 第一次拆开老式台式机时&#xff0c;那个紫色和绿色的小圆口总让我好奇。这种被称为PS/2的接口&#xff0c;其实是IBM在1987年推出的"个人系统2"&#xff08;Personal System/2&#xff09;的配套设计。你可能想不到&#xff0c;这个如今看来老…...

2026年硕士论文AI率15%以下怎么保证?实测工具推荐附操作指南

硕士论文AI率15%以下&#xff0c;这条线现在是很多学校的硬要求。比本科的30%严多了&#xff0c;但处理起来也有方法。 写这篇的起因是帮导师组里的一个师弟处理论文AI率问题。他的论文8万多字&#xff0c;知网AIGC检测给出AI率22%&#xff0c;需要降到15%以下才能送盲审。用嘎…...

小白程序员也能看懂的大模型内部原理:从加减乘除到Llama 3.1(收藏版)

本文深入浅出地解析了大语言模型&#xff08;LLM&#xff09;的工作原理&#xff0c;从基础的加减乘除运算开始&#xff0c;逐步构建一个生成式AI&#xff0c;并最终理解现代LLM和Transformer架构。文章剥去了机器学习领域的复杂术语&#xff0c;将一切还原为数字&#xff0c;帮…...

GBase 8c数据库全链路精准降本详解(下)

南大通用GBase 8c数据库&#xff08;gbase database)用五招硬核技术&#xff0c;从存储、内存、CPU到I/O&#xff0c;全链路精准降本。不是省钱降质&#xff0c;而是让每一分硬件投入都产生最大价值。3第三招&#xff1a;内存精准管控&#xff0c;不浪费每一兆内存价格居高不下…...

MindSpore 环境配置完全指南侠

前面我们对 Kafka 的整体架构和一些关键的概念有了一个基本的认知&#xff0c;本文主要介绍 Kafka 的一些配置参数。掌握这些参数的作用对我们的运维和调优工作还是非常有帮助的。 写在前面 Kafka 作为一个成熟的事件流平台&#xff0c;有非常多的配置参数。详细的参数列表可以…...

【仅限首批200位AI平台工程师】:手把手搭建支持LoRA热切换+Embedding降维的实时告警管道(含开源eBPF探针源码)

第一章&#xff1a;AI原生软件研发监控告警体系搭建 2026奇点智能技术大会(https://ml-summit.org) AI原生软件具备动态推理路径、模型权重热更新、多模态输入响应等特性&#xff0c;传统基于静态服务拓扑的监控体系难以捕获其运行时语义异常。构建面向AI原生应用的监控告警体…...

Gephi实战:如何用外观和布局打造专业级网络可视化图表(附详细参数设置)

Gephi实战&#xff1a;如何用外观和布局打造专业级网络可视化图表&#xff08;附详细参数设置&#xff09; 当面对复杂的网络数据时&#xff0c;如何让节点和边的关联关系一目了然&#xff1f;Gephi作为开源的网络分析工具&#xff0c;其强大的可视化功能能帮助我们从杂乱的数据…...

echarts-gl 网络图布局算法:ForceAtlas2 GPU 加速原理详解

echarts-gl 网络图布局算法&#xff1a;ForceAtlas2 GPU 加速原理详解 【免费下载链接】echarts-gl Extension pack for Apache ECharts, providing globe visualization and 3D plots. 项目地址: https://gitcode.com/gh_mirrors/ec/echarts-gl Apache ECharts GL 作为…...