mysql什么时候不需要建立索引

  • WHERE 条件,GROUP BY,ORDER BY 里用不到的字段,索引的价值是快速定位,如果起不到定位的字段通常是不需要创建索引的,因为索引是会占用物理空间的。
  • 字段中存在大量重复数据,不需要创建索引,比如性别字段,只有男女,如果数据库表中,男女的记录分布均匀,那么无论搜索哪个值都可能得到一半的数据。在这些情况下,还不如不要索引,因为 MySQL 还有一个查询优化器,查询优化器发现某个值出现在表的数据行中的百分比很高的时候,它一般会忽略索引,进行全表扫描。
  • 表数据太少的时候,不需要创建索引;
  • 经常更新的字段不用创建索引,比如不要对电商项目的用户余额建立索引,因为索引字段频繁修改,由于要维护 B+Tree的有序性,那么就需要频繁的重建索引,这个过程是会影响数据库性能的。
相关推荐
ZWZhangYu6 小时前
LangChain 构建向量数据库和检索器
数据库·langchain·easyui
feifeigo1237 小时前
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
数据库·mysql·adb
火龙谷8 小时前
【nosql】有哪些非关系型数据库?
数据库·nosql
焱焱枫9 小时前
Oracle获取执行计划之10046 技术详解
数据库·oracle
qq_3923971210 小时前
Redis常用操作
数据库·redis·wpf
A__tao11 小时前
一键将 SQL 转为 Java 实体类,全面支持 MySQL / PostgreSQL / Oracle!
java·sql·mysql
一只fish12 小时前
MySQL 8.0 OCP 1Z0-908 题目解析(17)
数据库·mysql
花好月圆春祺夏安12 小时前
基于odoo17的设计模式详解---装饰模式
数据库·python·设计模式
A__tao13 小时前
SQL 转 Java 实体类工具
java·数据库·sql
m0_6530313613 小时前
腾讯云认证考试报名 - TDSQL数据库交付运维专家(TCCE PostgreSQL版)
运维·数据库·腾讯云