前缀索引使用

前缀索引使用前缀索引使用1.前缀索引索引通常会使用字段的整体用作关键字,但是有些时候,即使使用字段的前段部分数据也是可以去识别某些记录的,而这种方式就是前缀索引,可以更快的去搜索某些数据建立前缀索引的语法:ALTERTABLE表名ADDKEY(字段名(N));N就是要用字段的前几位建立索引。既然我们使用了前缀索引,那么我们肯定就要确认N为多少的时候的辨识度是极限接近最高辨识度的,否则前缀…

大家好,又见面了,我是你们的朋友全栈君。

前缀索引使用

前言:
一定要一个字一个字看,必会

1.前缀索引

索引通常会使用字段的整体用作关键字,但是有些时候,即使使用字段的前段部分数据也是可以去识别某些记录的,而这种方式就是前缀索引,可以更快的去搜索某些数据
建立前缀索引的语法:

ALTER TABLE 表名 ADD KEY(字段名(N));

N就是要用字段的前几位建立索引。
既然我们使用了前缀索引,那么我们肯定就要确认N为多少的时候的辨识度是极限接近最高辨识度的,否则前缀索引的用处将不会被发挥出来。

那么怎么来确认这个N是多少的呢?
先查询出来字段共有多少条数据
首先我们先查询一下字段共有多少条数据:

$arr = select count(字段名) from 表名;

这时候我们会得到一个数据,这个数据是这个字段所有数据的长度,然后我们将这个数据记录下来。
记录下来之后将这个字段内的所有数据进行去重,去重函数为distinct,用我们刚才所取得的所有的数据数量除以我们去重过后得到的数据的数量,这个时候我们得到的就是我们这个字段的最大辨识度(如果不懂继续往下看)

$ayy = select $arr/count(distinct count(字段名)) form 表名;

这时候我们得到的$ayy就是我们这个字段所能得到的最大辨识度,而我们这个N就是要得到一个数,使我们这个数建立的前缀索引能达到无限接近于最大辨识度(ayy),这个 时候我们就可以进行调试。
假如这个字段的长度为10 我们就可以从4开始进行调试,直到我们得到的辨识度无限接近于我们得到的最大辨识度(ayy)。
调试方式:

$aoo = select $arr/count(distinct substring(字段名,1,4)) from 表名

这时候我们得到的¥aoo就是如果我们的N为4时辨识度为多少,如果并不是最接近最大辨识度(ayy)的话,我们就接着调试,将4改成5,6,7······直至我们的辨识度(aoo)达到最接近最大辨识度(ayy)。
当调试至最接近的时候N就为我们建立前缀索引的前几位,这时候我们就可以发挥出前缀索引的最大功能

ALTER TABLE 表名 ADD KEY(字段名(N));

TIP:前缀索引不能用于索引覆盖,因为索引覆盖需要全部的数据,而前缀索引只会缓存数据的前几位

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142476.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IntelliJ IDEA创建maven web项目(IDEA新手适用)

    IntelliJ IDEA创建maven web项目(IDEA新手适用)PS:从eclipse刚转到IDEA,对于这个陌生的工具我表示无言,但听说很好用,也就试试,结果我几乎花了一晚上的时间才搭起来mavenweb项目,觉得在此给各位一个搭建mavenweb项目的教程,指出我踩过的各种坑!步骤一:首先先创建一个project,在这里就是创建一个maven的工作空间步骤二:按照下面的步骤操作就可以了,最后next首先,选择左边的maven然后在右…

    2022年6月26日
    56
  • 谷歌创始人是谁_谷歌创始人的故事

    谷歌创始人是谁_谷歌创始人的故事·布林更多的关注。最新一期的《莫斯科新闻》称,如果举世瞩目的诺贝尔奖设有IT奖的话,这位脸上总是挂着招牌式微笑的年轻人注定是该奖项最有竞争力的人选。他创建的Google成为人们使用互联网的一种重要方式,使每个人与很多问题的答案之间只有点击一下鼠标那么远,Google正像当年的甲壳虫乐队那样风靡全球。  谢尔盖·布林出生在前苏联一个犹太人家庭。5岁那年,布林跟随父母一起移民美国,从而开始了他美

    2022年9月1日
    7
  • [一个互联网思想信徒]:今天突破69个听众

    [一个互联网思想信徒]:今天突破69个听众

    2021年11月13日
    49
  • UDP协议支持广播发送数据_tcp协议建立连接的过程

    UDP协议支持广播发送数据_tcp协议建立连接的过程UDP(用户数据报协议)是OSI(OpenSystemInterconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。目录什么是UDP协议?UDP协议数据传输原理DatagramPacket类DatagramSocket类UDP协议网络通信客户端服务器程序服务器端程序客户端程序Hello!大家好!我是灰小猿。之前和大家分享了使用TCP协议进行网络通信的过程,想了解的小伙伴可以看我的这篇文章《Java利.

    2022年5月3日
    77
  • 苹果手机数据转移到新手机_不同品牌手机一键换机:换新手机怎么转移数据?…

    苹果手机数据转移到新手机_不同品牌手机一键换机:换新手机怎么转移数据?…我们正处于一个数码产品更新换代非常快速的时代,很多消费者会紧跟时代潮流,经常更换新手机,但是更换手机之后我们通常需要将旧手机里的数据进行转移,不同品牌之间的手机怎么进行一键换机呢?以安卓手机更换苹果手机转移数据为例:1、首先我们需要在安卓手机上安装“转移到iOS”APP,通过该应用我们可以将安卓手机的数据转移到新的苹果手机上2、确保安卓设备处于WiFi状态3、将安卓设备以及苹果设备连接电源4、设置…

    2022年5月25日
    44
  • java入门编程(菜鸟教程)

    java入门编程(菜鸟教程)1.创建一个java程序的步骤a打开editplus软件,选择左上角的file选项,在弹出来的菜单中选择new然后再从弹出来的菜单中选择normaltextb按住ctrl+s快捷键,保存。1选择要保存的位置2给文件命名(以大写的字母开头)3选择文件的后缀,以.java后缀结尾c进行代码的编写,所有字符我们必须都是英文输入状态下的d打开控制台(win+r在弹出左下角的命令行中输入cmd)e找到java源文件的位置,我们使用cd命令定位到我们源文件的文件夹(我们可以在打开的源文件文件夹地址栏

    2022年5月26日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号