首页 > 数据库 >mysql索引优化:唯一性太低的字段

mysql索引优化:唯一性太低的字段

时间:2022-09-22 09:25:32浏览次数:54  
标签:唯一性 索引 太低 内存 mysql 数据

除非特殊情况,否则不要在唯一性太低的字段上面添加索引。

 

什么叫唯一性太低?

主要是一些表示状态或者类型的字段,例如:性别、是否删除等。

 

为何?

mysql在查询时,会将索引中的键值取出来与内存中页的数据相比较。

但是内存页中数据的顺序与索引中数据的顺序并不是一致的。

假如索引值为“1”,在数据页“a”中找到了数据,然后又在数据页“b”中找到了数据,“b”不在内存中。

此时mysql把“a”销毁,把“b”读到内存中。

接下来,mysql又在数据页“a”中找到了数据,此时又必须反过来把“b”销毁,把“a”读到内存中。

由于从索引去寻找表中数据是随机访问的,这种随机访问所造成的频繁的io操作,甚至比全表扫描的io消耗要大。

 

特殊情况

什么叫特殊情况呢,就是你可以 完全确定 索引的数据是连续的,同一个索引值的数据在同一个或者连续的数据页中不会有例外。此时使用索引 有可能 会提高查询效率。

标签:唯一性,索引,太低,内存,mysql,数据
From: https://www.cnblogs.com/Bin-x/p/16717968.html

相关文章

  • openEuler离线安装mysql5.7.24
    1.官网下载程序包https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz2.上传至/usr/local/src目录下,解压3.将解压包移动到/us......
  • Node.js 的学习(四)分别连接MongoDB与MySQL数据库,实现增删查改功能
    一、Node.js访问MongoDB数据库MongoDB对许多平台都提供驱动可以访问数据库,如C#、Java、Node.js等。1.1、安装MongoDB访问驱动命令如下:全局安装驱动:npminstallmon......
  • mysql根据时间戳统计最近七天的数据
    SELECTDATE_FORMAT(FROM_UNIXTIME(时间戳字段名),'%Y-%m-%d')asdate,id,xxx,count(xxx)astotalFROM表名whereDATE_SUB(CURDATE(),INTERVAL6DAY)<=FR......
  • MySQL在线实现主从配置
    前提是主库的MySQL开启了Binlog,不然需要修改配置,然后重启MySQL1.主库配置[mysqld]max_allowed_packet=1024Mserver-id=1log-bin=mysql-binbinlog_format=row#必......
  • Gorm 操作mysql
    gorm操作mysql安装:goget-ugorm.io/gorm//gorm要连接数据库首先要导入驱动程序:import_"github.com/go-sql-driver/mysql"为了方便,grom包装一些驱动:"gorm.......
  • python-mysql 批量造数据
    importpymysqldb=pymysql.connect(host="124.70.xxx.xxx",user="root",password="3xxxx",database="novel")mycursor=db.cursor()phone=......
  • MYSQL8.0 忘记密码
    1、关闭MySQL服务,以管理员身份运行cmd,输入netstopMySQL(服务名) 2、跳过权限验证,mysqld--console--skip-grant-tables--shared-memory3、以管理员身份运行cmd,新开一......
  • MySQL知识点
    VARCHAR、CHARVARCHAR使用额外1或2个字节存储字符串长度。列长度小于255字节时,使用1字节表示,否则使用2字节表示。VARCHAR存储的内容超出设置的长度时,内容会被截断。CHA......
  • MySQL 常用30种SQL查询语句优化方法
    1、应尽量避免在where子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列......
  • springboot+Flink(读取kafka并存入Mysql)20220921
    1、mysql数据库test 2、kafka创建主题student  3、pom.xml<properties><java.version>1.8</java.version><project.build.sourceEncod......