当前位置: 首页 > ds >正文

数据库表添加索引

给字段添加索引,适用于查询频繁,重复不多的字段。主键和唯一约束在MySQL中会自动生成索引。
需要根据具体的查询模式和数据特点来设计,过多的索引会影响写操作性能,而索引确实会导致查询缓慢。合理的索引设计师数据库性能优化的关键。

索引

索引是一种数据结构,简单的案例就是类似书籍的目录,帮助mysql快速定位到所需要的数据行,而不需要扫描到整个表。索引存储了表中一列或者多列的值,并指向对应的数据行位置。

索引的类型

按照数据结构:

  • B+树索引
  • 哈希索引
  • 全文索引
    按应用维度分:
  • 主键索引:每个表只有一个,自动创建
  • 唯一索引
  • 普通索引
  • 复合索引:包含多个列的索引,遵循最左匹配原则

工作原理

使用B+树结构存储索引,是一种平衡的多路搜索树,所有叶子结点在同一层,并包含实指向实际数据的指针。执行查询时,MySQL从根节点开始,逐层向下查找,直到找到目标数据。

添加索引

  • 新建表中添加索引
  • 已有表中添加索引
  • 以修改表的方式添加索引

例如新建表添加索引:

create table table_name (id int not null primary key,name varchr(20) null,password varch(20) null,index index_id(id)

使用sql创建索引:

-- 创建普通索引
create index idx_name on table_name(column_name);-- 创建唯一索引
create unique index idx_name on table_name(column_name);-- 创建复合索引
create index idx_composite on table_name(col1, col2, col3);

删除索引:

drop index index_name on table_name;

查看索引:

show index from table_name;

优缺点

优点:

  • 提高查询速度,特别是where, order by, group by操作
  • 加速表连接操作
  • 减少服务器需要扫描的数据量

缺点:

  • 占用额外的存储空间
  • 降低insert, update, deltete操作的速度
  • 维护成本增加

参考

mysql中添加索引的三种方法

http://www.xdnf.cn/news/9509.html

相关文章:

  • STM32 Modbus RTU从机开发实战:核心实现与五大调试陷阱解析
  • 什么是Windows内存压缩? win10/11系统启用和禁用内存压缩的教程
  • HTB-Puppy
  • DAY 38 Dataset和Dataloader类
  • Linux网络编程(一)
  • 医疗影像检测系统设计与实现
  • open3d保存为pcl可以读取的ply点云
  • Windows 子系统 WSL 中宝塔安装 supervisor 启动失败解决方案
  • 《计算机组成原理》第 1 章 - 计算机系统概论
  • 工控安全审计与网络流量监控系统的协同防御
  • ‌CDGP|企业数据治理:莫让“打补丁”成为常态
  • STL容器使用中的常见问题解析
  • 辛格迪客户案例 | 博福-益普生实施YonSuite,同步开展计算机化系统验证(CSV)
  • Druid连接池使用和源码分析
  • 为Windows用户量身定制的监控方案
  • 通过 API 获取 1688 平台订单接口的技术实现
  • LeetCode 118 题解--杨辉三角
  • 软考 系统架构设计师系列知识点之杂项集萃(77)
  • 1435系列信号发生器
  • 2025年上半年软考系统架构设计师--案例分析试题与答案
  • python 生成复杂表格,自动分页等功能
  • 自动驾驶规划控制教程——不确定环境下的决策规划
  • 火柴INIBOX矿机实测850M算力即将改写Initverse挖矿规则
  • 模型可信度
  • 缩量资金迁徙下的短期博弈
  • phpstudy(1) -- 记录
  • Orpheus-TTS:AI文本转语音,免费好用的TTS系统
  • 第二十二章:数据治理之数据价值:数据价值知多少
  • 远程模块“破壁”指南:打破空间限制,让控制“无界”!
  • 解析pod