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

数据库表添加索引

给字段添加索引,适用于查询频繁,重复不多的字段。主键和唯一约束在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中添加索引的三种方法

相关文章:

  • 天大《电视原理》背诵考点整理+计算/框图/作业题 (个人整理)
  • gbase8s统计更新(UPDATE STATISTICS)介绍
  • 【详细记录】我的第一次裸片硬件尝试:stm32f103c8t6最小核心板一板成
  • Linux--CentOs 8配置及基础命令
  • 以鸿道工业操作系统为核心,打造工业智能机器人新生态
  • 《富有的习惯》
  • 前端Vue3列表滑动无限加载实现
  • Day128 | 灵神 | 二叉树 | 反转二叉树的奇数层
  • 深入理解Java中的BigDecimal:高精度计算的核心工具
  • 投影机三色光源和单色光源实拍对比:一场视觉体验的终极较量
  • 将Windows11下的Ubuntu应用移动到其他盘
  • 华为FreeArc能和其他华为产品共用充电线吗?
  • 使用MATLAB求解微分方程:从基础到实践
  • 数字藏品质押融资的法律风险与合规路径
  • Linux换源yum和安装nginx,mysql
  • 余弦退火:助力模型训练的优化算法
  • OpenHarmony平台驱动使用(五),HDMI
  • java 数据输出占5列,右对齐
  • Jenkins实践(10):pipeline构建历史展示包名和各阶段间传递参数
  • C 语言学习笔记(结构体1)
  • 做游戏的av迅雷下载网站有哪些/免费好用的网站
  • 班级网站建设php/做网站公司哪家比较好
  • 高爆传奇手机版/seo什么意思中文意思
  • 做网站都需要用到什么/网络营销的六大特征
  • 网络宣传网站建设价格/做网站哪家公司比较好而且不贵
  • 蓝色大气企业网站模板/响应式网站模板的优势