news 2026/6/15 6:50:13

进阶-索引5-设计原则

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
进阶-索引5-设计原则

一、MySQL进阶

1. 索引

索引设计不是简单地给每个字段加个索引,而是一场在查询性能写入速度存储空间维护成本之间的精细权衡。

1.1 设计原则

1. 索引不是越多越好,而是越精准越好

核心理念

索引虽好,但有代价:

  • 写入性能下降:每次INSERT/UPDATE/DELETE都需要同步更新所有相关索引
  • 存储空间膨胀:每个索引都是一棵B+树,占用额外磁盘空间
  • 优化器负担加重:索引越多,MySQL查询优化器选择执行计划的时间越长

数据说话:一张1亿行的用户表,若建立10个二级索引,写入速度可能下降30%~50%,存储空间翻倍。

-- 错误示范:为低频查询字段建立索引 CREATE TABLE orders ( id BIGINT PRIMARY KEY, user_id BIGINT, created_at DATETIME, internal_remark TEXT -- 业务字段,但只在后台统计时偶尔查询 ); CREATE INDEX idx_internal_remark ON orders(internal_remark); -- ❌ 低频查询,浪费索引 -- 正确做法:针对高频查询字段建立索引 CREATE INDEX idx_user_created ON orders(user_id, created_at); -- ✅ 高频查询条件
2. 表级别:何时建立索引?

核心原则

索引的收益与表的数据量和查询频率成正比

  • 数据量越大,索引的价值越明显
  • 查询越频繁,索引的回报越高

选择标准

表类型数据量查询频率是否建索引说明
配置表<100行高频❌ 不建全表扫描成本低
字典表500行高频✅ 建索引每秒查询100次值得建
订单表1000万行高频✅ 建索引索引价值高
订单表1000万行低频❌ 不建维护成本高

经验值:一般表数据量超过1000行,才考虑建立索引。但需结合查询频率,如500行表每秒查询100次,也值得建索引。

经验值:一般表数据量超过1000行,才考虑建立索引。但需结合查询频率,如500行表每秒查询100次,也值得建索引。

3. 字段级别:哪些字段适合建索引?

三大应用场景

索引主要适用于以下三大场景:

  1. 过滤(WHERE条件):如WHERE user_id = 123
  2. 排序(ORDER BY):如ORDER BY create_time DESC
  3. 分组(GROUP BY):如GROUP BY category_id

高选择性字段优先

选择性= COUNT(DISTINCT column_name) / COUNT(*)

字段选择性是否适合建索引说明
user_id0.98高选择性,几乎唯一
gender0.02低选择性,只有两个值
status0.35选择性>0.32,适合建索引
city0.15选择性<0.2,效果不佳

最佳实践:优先为高选择性的列创建索引,或将其作为联合索引的首列。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 12:04:50

雀魂AI助手Akagi终极指南:免费提升麻将水平的完整教程

雀魂AI助手Akagi终极指南&#xff1a;免费提升麻将水平的完整教程 【免费下载链接】Akagi A helper client for Majsoul 项目地址: https://gitcode.com/gh_mirrors/ak/Akagi 作为雀魂游戏玩家的得力助手&#xff0c;Akagi这款智能麻将分析工具通过深度学习算法为玩家提…

作者头像 李华
网站建设 2026/6/15 12:04:49

HeidiSQL终极指南:免费数据库管理工具完全掌握

HeidiSQL终极指南&#xff1a;免费数据库管理工具完全掌握 【免费下载链接】HeidiSQL HeidiSQL: 是一个免费且强大的 SQL 编辑器和数据库管理工具&#xff0c;支持 MySQL、PostgreSQL、SQLite 等多种数据库。适合数据库管理员和开发者使用 HeidiSQL 管理数据库和查询数据。 项…

作者头像 李华
网站建设 2026/6/15 19:43:08

Python GUI设计神器:可视化拖拽编程让你秒变界面设计高手

还在为Python界面设计发愁吗&#xff1f;每次写Tkinter代码都要查文档、调布局&#xff0c;一个简单的按钮都要折腾半天&#xff1f;别急&#xff0c;今天给你推荐一个超级好用的可视化拖拽编程工具——tkinter-helper&#xff01;前100字就告诉你&#xff0c;这个工具能让你用…

作者头像 李华
网站建设 2026/6/15 12:04:28

有没有中文文档?官方Wiki与第三方教程资源汇总推荐

IndexTTS 2.0&#xff1a;中文语音合成的新基建 在短视频日活破亿、虚拟主播遍地开花的今天&#xff0c;内容创作者们正面临一个看似微小却极其棘手的问题&#xff1a;配音对不上画面。你精心剪辑了一段3.2秒的情绪爆发镜头&#xff0c;结果AI生成的语音慢了半拍——节奏全毁。…

作者头像 李华
网站建设 2026/6/15 19:13:54

Windows系统终极加速完整指南:一键清理让你的电脑焕然新生

你是否经历过电脑开机缓慢、软件响应迟钝、系统卡顿不断的烦恼&#xff1f;Windows优化不再需要复杂的技术操作&#xff0c;Winhance中文版为你提供简单快速的一键清理解决方案&#xff0c;让系统加速变得触手可及。 【免费下载链接】Winhance-zh_CN A Chinese version of Winh…

作者头像 李华
网站建设 2026/6/15 19:32:51

2025年7大AI写作软件费用排行与免费功能详解

AI写作工具价格排行榜2025&#xff1a;7大平台免费功能推荐 2025年主流AI写作工具核心对比 工具名称 核心功能 价格区间 免费功能 适用场景 AiBiye 论文全流程辅助 99-399/月 选题生成 学术论文写作 AiCheck 查重降重 0.1-0.5/千字 基础查重 论文修改优化 AskP…

作者头像 李华