首页 > 数据库 >mysql 文本区分度

mysql 文本区分度

时间:2022-12-09 15:23:34浏览次数:35  
标签:文本 张三 索引 内存 mysql 长度 排序 区分度

 

 

 

 

SELECT count(distinct left(shop_name, 5))/count(*) FROM `shop`;

  

 

索引长度和区分度是相互矛盾的,

索引长度太短,那么区分度就很低,把索引长度加长,区分度就高,但是索引也是要占内存的,所以我们需要找到一个平衡点;

那么这个平衡点怎么来定?

 

比如用户表有个字段 username ,要给他加索引,问题是索引长度多少合适?

其实我们知道 百家姓里面有百多个姓 ,但是大多数人的姓 集中在前十多个;如果我设置索引索引长度为1,占内存少,但是区分度低,区分度低索引的效率越低。太长则占内存;

 

首先你要知道 mysql的索引都是排好序的。如果区分度高排序越快,区分度越低,排序慢;

举个例子:  (张,张三,张三哥),如果索引长度取1的话,那么每一行的索引都是 张 这个字,完全没有区分度,你让他怎么排序?结果这样三行完全是随机排的,因为索引都一样;

如果长度取2,那么排序的时候至少前两个是排对了的,如果取3,区分度达到100%,排序完全正确;

等等,那你说是不是索引越长越好?  答案肯定是错的,比如 (张,李,王)  和 (张三啦啦啦,张三呵呵呵,张三呼呼呼);前者在内存中排序占得空间少,排序也快,后者明显更慢更占内存,在大数据应用中这一点点都是很恐怖的

 

https://www.cnblogs.com/codeAB/p/6391303.html

 

标签:文本,张三,索引,内存,mysql,长度,排序,区分度
From: https://www.cnblogs.com/ooo0/p/16969006.html

相关文章

  • mysql配置提高数据插入效率
    innodb_buffer_pool_sizeinnodb_buffer_pool_size默认值为32M,可以设置成128M。该参数表示mysql的Innodb存储引擎为优化查询性能而开辟出的一块内存缓冲区showglobal......
  • Mysql:mysql行转列(数值行和字符行)
    数值行转列建表DROPTABLEIFEXISTStb_score;CREATETABLEtb_score(idINT(11)NOTNULLauto_increment,useridVARCHAR(20)NOTNULLCOMMENT'用户id'......
  • Mysql 日期大小比较
    Mysql日期大小比较​​mysql时间参数年月日时分秒比较大小​​​​mysql时间参数年月日比较大小​​mysql时间参数年月日时分秒比较大小<selectid="checkTimeR......
  • Mysql开启ssl加密协议及Java客户端配置操作指南
    Mysql开启ssl加密协议及Java客户端配置操作指南​​Mysql配置​​​​验证Mysql开启SSL​​​​Java客户端操作​​​​生成证书密码​​​​配置数据库连接​​​​工具配......
  • mysql8数据类型汇总
    数据类型之enum在Mysql中的Enum数据类型补充:enum类型NOTNULL的时候,默认值是下标为1的值['男','女']的默认值是'男'......
  • ubuntu20.04下安装mysql5.7后,允许远程登录
    1、在mysql的配置文件中设置bind-address=0.0.0.0 2、在databasemysql中设置root用户的host为% 安装deb后使用apt-cachepolicymysql-server查看......
  • mac Django 连接mysql
    目录macdjango2.2正确连接mysql方式问题描述macdjango2.2正确连接mysql方式macDjango电脑连接mysql时候会出现一些错误,因为版本问题。以下操作Django2.2.22亲测有效......
  • 基于Python+Django+Vue+MYSQL的社团管理系统
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • 一键部署MySQL8+keepalived双主热备高可用
    概述本次的文章会格外的长,网上大多的配置流程已经不可使用,本篇文章可以称为保姆级教程,而且通过shell脚本大大减少了部署mysql主从,双主的工作量。如上图,VIP地址为192.168......
  • 【MySQL】将查询结果导出到一个文件
    (1)SQL示例如下,要将如下的SQL查询结果导出到一个txt文件,便于研发做结果内容的核对selectps_partkey,sum(ps_supplycost*ps_availqty)asvaluefromparts......