前缀索引使用

前缀索引使用前缀索引使用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vim 查找字符串「建议收藏」

    vim 查找字符串「建议收藏」在命令模式下输入/然后输入你需要查找的字符串即可。见下图:  可以使用n继续向下查找下一个名称为job的字符串。  可以使用N向上查找名称为job的字符串。  但每次查找完成后高亮并不会消失,可以在命令行模式输入:nohlsearch或者:noh,也可以输入:setnohlsearch,设置不用高亮查询会让你的查询不会高亮显示,如果需要高亮显示可以输入:sethlsearch。…

    2022年6月17日
    154
  • 网页视频下载mp4格式到本地

    发现个网页视频地址下载成mp4格式的资源,分享给大家:git下载地址:​​​​​​​https://gitee.com/tiankf/mp4如果本文对你有帮助还麻烦赞一下,在此感谢啦!

    2022年4月7日
    41
  • sqlserver截断字符和二进制数据_SQL异常字符串截断

    sqlserver截断字符和二进制数据_SQL异常字符串截断错误信息提示:  Java代码  Error! [8152]System.Data.SqlClient.SqlException: 将截断字符串或二进制数据。语句已终止。   原因:增加的数据类型与数据库中字段所定义的不符。 解决方法:1、修改数据库字段大小;2、加强数据强壮性,严格的输入判断。 防止添加的信息类型或者长度与数据库表中字段所对应的类型不符合。…

    2022年10月6日
    2
  • FDD还是TDD?

    FDD还是TDD?达到更高频谱利用率、覆盖率,同时保证多媒体应用的QoS服务质量,已经成为第四代蜂窝4G网络的挑战和目标。在4G系统里,有许多关于物理层和多接入以提高频谱利用率方面的研究,以支持高达100Mbps甚至更高的数据传输速率。例如,正交频分多址OFDMA、MIMO天线,以及跨层资源优化,被认为是4G系统中的核心技术,并同时在频率选择的衰落信道中提供高可靠通信。另一方面,4G系统双工方式的选择,是FDD

    2022年5月8日
    50
  • reload与refresh

    reload与refreshwindow.reload()是重新加载当前需要的所有内容.window.Refresh()是刷新,保留之前的缓存内容,重新加载页面,之前存在的东西不会动,没加载上来的东西继续加载.

    2022年7月18日
    14
  • 简述Python垃圾回收机制「建议收藏」

    简述Python垃圾回收机制「建议收藏」引言许多高级语言都具有自己的垃圾回收机制,以管理计算机内存,Python也不例外。对于垃圾回收机制的了解程度,成了开发人员是否真正了解Python的检验手段,在面试的时候许多面试官也喜欢以此作为题目考察面试者Garbagecollection(GC)概述现在的高级语言如java,c#等,都采用了垃圾回收机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可…

    2022年6月15日
    26

发表回复

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

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