Jw
首页
技术
英语
首页
技术
英语
  • MySQL

    • MySQL 基础
    • 环境变量配置(PATH)
    • SQL 语法与分类
    • MySQL 数据类型
    • SQL - DDL 数据定义语言
    • SQL - DML 数据操作语言
    • SQL - DQL 数据查询语言
    • SQL - DCL 数据控制语言
    • MySQL 函数
    • SQL 约束
    • SQL 外键约束
    • 多表关系
    • 多表查询(连接查询)
    • 隐式内连接 vs 显式内连接
    • 子查询
    • 多表查询案例
    • 事务
    • 并发事务问题与隔离级别
    • MySQL 体系结构与存储引擎
    • 索引概述
    • 索引结构
    • 索引分类
    • 索引语法
    • SQL 性能分析
    • 索引使用
    • 索引设计原则
    • SQL 优化 - 插入数据与主键优化
    • SQL 优化 - order by 与 group by
    • SQL 优化 - limit / count / update
    • 视图
    • 存储过程
    • 存储过程 - 变量
    • 存储过程 - 流程控制、游标与条件处理
    • 存储函数
    • 触发器
    • 锁概述与全局锁
    • 表级锁
    • 行级锁
    • InnoDB 逻辑存储结构
    • InnoDB 架构
    • 事务原理(redo / undo log)
    • MVCC
    • MySQL 系统数据库
    • MySQL 常用工具
    • 数据备份与导入导出
    • 错误日志与二进制日志
    • 查询日志与慢查询日志
    • 主从复制 - 概述与原理
    • 主从复制 - 搭建
    • Mycat 配置
    • Mycat 垂直拆分与水平拆分
    • Mycat 分片规则
    • Mycat 管理与监控
    • Mycat 读写分离 - 一主一从
    • Mycat 读写分离 - 双主双从

索引设计原则

建索引不是越多越好:按「表 → 字段 → 索引」三个层面取舍。

#原则说明
1表:数据量大且查询频繁针对数据量较大、且查询比较频繁的表建立索引
2字段:高频出现在条件中针对常作为查询条件(where)、排序(order by)、分组(group by)操作的字段建立索引
3字段:区分度要高尽量选择区分度高的列,尽量建唯一索引;区分度越高,索引效率越高
4字段:长字符串用前缀索引字符串类型且长度较长的字段,可针对字段特点建立前缀索引
5索引:多用联合索引尽量使用联合索引、减少单列索引;联合索引很多时候可以覆盖索引,节省存储空间、避免回表、提高查询效率
6索引:控制数量索引并非多多益善,索引越多维护索引结构的代价越大,会影响增删改的效率
7字段:对非空列加 NOT NULL索引列不存储 NULL 时,建表时用 NOT NULL 约束它,优化器能更好地决定用哪个索引最有效

相关

  • 索引使用:最左前缀、索引失效、覆盖索引、前缀索引
  • 索引分类:主键 / 唯一 / 常规索引,聚集与二级索引
  • 索引语法:创建 / 查看 / 删除索引
最近更新: 2026/10/10 23:52
Contributors: liujw
Prev
索引使用
Next
SQL 优化 - 插入数据与主键优化