首页 > 其他分享 >前缀索引

前缀索引

时间:2024-04-23 18:11:24浏览次数:16  
标签:前缀 信息 索引 字段 数目 left

前缀索引 · MySQL优化 · 看云 https://www.kancloud.cn/lizhenjie1992/my/554979

通过字段前n位创建的索引就称为“前缀索引”。如果一个字段内容的前边的n位信息已经足够标识当前的字段内容,就可以把字段的前n位获得出来并创建索引,该索引占据空间更小、运行速度更快.

例如:

  • 关伟伟
  • 关小宝
  • 吕纪无
  • 刘尚香
  • 王云斐

以上4个记录信息创建索引,完全可以把第一个字给获得出来创建索引,第一个字完全可以唯一标识每个字段内容。

语法:

alter table  表名  add  key  (字段(前n位位数));

到底前几位可以唯一标识字段的内容?

获取制作前缀索引的n的信息:

  1. 去除字段重复内容并计算总数目.
  2. 取字段的前(n)1、2、3.....位不重复的信息并计算总数目,n从1开始不断累加,直到总数目 与 ①计算的总数目相等,此时n就是我们设计前缀索引的数字n信息.

mysql中截取字段的前n位信息,使用函数left(字段,长度).例如截取前5位信息: left(字段,5).

制作前缀索引

计算全部字段不重复记录的总条数:

select count(distinct 字段) from 表;

计算前n位不重复记录的总条数,n从1开始累加:

select count(distinct left(字段,n)) from 表;

比较两个统计的数据是否一致,如果一致就取N的值作为前缀索引. 前缀索引比普通索引速度要快很多.

 

翻译

搜索

复制

标签:前缀,信息,索引,字段,数目,left
From: https://www.cnblogs.com/papering/p/18153494

相关文章

  • 根据文件的逻辑块号判断索引块的地址类型
    混合索引节点法是操作系统管理文件的其中一种方法,混合索引节点包括直接索引地址以及多级间接索引地址(比如:一级间接索引地址、二级间接索引地址……)。每个文件对应一个索引节点,每个索引节点由多个地址构成,这些地址包括上述提到的直接索引地址和多级间接索引地址,这些索引地址指向不......
  • MySQL-06.索引的数据结构
    1.为什么使用索引索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。MySQL中的索引也是一样的道理,进行数据查找时,首先查看查询条件是否命中某条索引,符合则通过索引查找相关数据,如果不符合则需要全......
  • 聚簇索引
    聚簇索引(ClusteredIndex)是一种特殊的索引结构,它与表的物理存储方式相关联,将数据行存储在索引的叶子节点中。在聚簇索引中,数据行的物理顺序与索引的逻辑顺序相匹配,因此可以加速范围查询和排序操作。在关系型数据库中,每张表可以有一个聚簇索引,该索引定义了表的物理存储顺序。当表......
  • 在副本集和分片集群上构建 MongoDB 索引
    1.限制留有足够的内存来容纳工作集是非常重要的。不一定所有索引都要放在内存中。在v4.0之前,索引键的限制应小于1024字节。从v4.2版开始,这一限制被取消。索引名也是如此,在使用fcv4.0及以下版本的数据库中,索引名的最大长度为127字节。在dbv4.2和fcv4.2中,这一......
  • 1048 数字加密(前缀和思想)
    暴力(12分)#include<bits/stdc++.h>usingnamespacestd;constintinf=0x3f3f3f3f;#definelllonglonginta[100010];intmain(){ intn; cin>>n; for(inti=0;i<n;i++){ cin>>a[i]; } set<int>st; for(inti=0;i<n;i++){ ......
  • openGauss workload级别索引推荐
    workload级别索引推荐对于workload级别的索引推荐,用户可通过运行数据库外的脚本使用此功能,本功能将包含有多条DML语句的workload作为输入,最终生成一批可对整体workload的执行表现进行优化的索引。同时,本功能提供从日志中或系统表中抽取业务数据SQL流水的功能。前提条件数据库......
  • 你的数据库用对索引了吗?一文揭秘PolarDB XPlan索引选择
    ​ 对于数据库来说,正确地选择索引是基本要求,选错索引轻则导致查询缓慢,重则导致数据库整体不可用。PolarDB分布式版存在多种不同的索引:局部索引、全局索引、列存索引、归档表索引。局部索引就是单机数据库上常用的索引,目的是避免全表扫描。全局索引是分布式数据库为了避免......
  • go语言使用go-elasticsearch/v8如何操作es8.x版本实现索引的增删查改
    import("context""encoding/json""fmt""github.com/elastic/go-elasticsearch/v8""github.com/elastic/go-elasticsearch/v8/esapi""github.com/elastic/go-elasticsearch/v8/esutil&......
  • MySQL锁、事务和索引
    并发事务的控制方式是MVCC和行锁按范围分:表级锁、页锁、行级锁(锁一行或者多行)(记录索、间隙锁、临键锁(可重复读默认用这个做行锁,除非是主键和唯一索引会使用记录索))按功能分:读锁(S)、写锁(X)意向锁是表级锁,分为意向共享锁、意向排他锁,用于协调表锁和行锁的关系,事务想要在某些行上加共......
  • MySQL优化:索引
    1、谈一下你对于mysql索引的理解?(为什么mysql要选择B+树来存储索引)​ mysql的索引选择B+树作为数据结构来进行存储,使用B+树的本质原因在于可以减少IO次数,提高查询的效率,简单点来说就是可以保证在树的高度不变的情况下可以存储更多的数据:​ 1、在MYSQL的数据库中,表的真实数据和......