数据库 索引

Mysql的索引 事务 存储引擎

  1. 索引

概念

什么是索引:索引是一个排序的列表,列表当中存储的是所有的值和包含这个值的数据所在行的物理地址

索引的作用

加快查询作用,这是他主要的一个作用

  1. 利用索引数据库可以快速定位,大大加快查询速度。
  2. 表的数据很多,查询需要关联多个表,这个时候索引也可以提高查询速度
  3. 加快表与表之间的连接
  4. 使用分组和排序时,可以大大减少时间
  5. 可以提高数据库恢复数据时的速度

索引创建的原则

  1. 如果有索引,数据库会优先进行索引查询,然后定位数据,索引索引使用不当,反而会增加数据库的负担

主键,外键必须要有索引(创建好了主键和外键自动就是索引,不需要额外声明)

  1. 如果一个表超过了300行记录,必须要有索引,否则数据库会遍历表的所有数据。
  2. 互相之间有关联的表,在关联字段上应该设置索引
  3. 如果该字段的唯一性太差,不适合创建索引,最好是唯一且不重复的字段
  4. 更新太频繁的字段,不适合做索引。
  5. 经常被where条件匹配的字段,尤其是表数据较多的,应该创建索引
  6. 在经常进行(高级语句)group by (分组) order by (排序语句)的字段,要建立索引
  7. 索引的列的字段越小越好,大文本字段(长文本字段)不要建立字段

索引的类型

  1. 数 索引又叫 BTREE

如何查看表的索引

属性结构的索引,也是大部分数据库的默认索引类型。

根节点:数的最顶端分支节点

分支节点:指向索引里其他的分支节点,也可以是叶子结点

叶子结点:直接指向表里的数据行

哈希索引:散列索引,把任意长度的输入,通过散列算法变换成固定长度的输出,散列值----分别对应数据里的列和行 mosql的默认引擎:innodb 默认的索引类型就是Btree

Memory 引擎可以支持HASH,也是他的默认引擎

先算散列值,然后在对应,

相关推荐
赵渝强老师2 分钟前
【赵渝强老师】YashanDB Developer Center(YDC,崖山数据库开发者中心)
数据库·国产数据库·yashandb·崖山数据库
lusklusklusk4 分钟前
SQL Server 为什么普通 SELECT 会阻塞 UPDATE?——行级 S 锁到表级 S 锁的锁升级原理与实验验证
数据库·mysql·oracle
Leo.yuan12 分钟前
企业业务人员如何独立完成数据分析?2026年自助BI工具选型与应用指南
大数据·数据库·人工智能
roman_日积跬步-终至千里13 分钟前
数仓开发的三层责任:业务定义、模型设计与 SQL 实现
数据库·数据仓库·sql·数据建模
瀚高PG实验室15 分钟前
瀚高数据库创建新数据库卡住问题排查
数据库·postgresql·瀚高数据库
瑶总迷弟34 分钟前
银河麒麟 V10 ARM64 安装 Oracle 19c 静默部署操作手册
数据库·oracle
飞浪纪元[FWC–FE]1 小时前
Qt 工程创建与 CMake / qmake 构建规范
开发语言·数据库·qt
Ivanqhz1 小时前
MoE + LLM 应用
数据库·人工智能·pytorch·python·深度学习·算法·1024程序员节
Tsuki_tl1 小时前
【总结】Redis五大数据类型应用场景及基本命令
数据库·redis·后端·缓存·缓存中间件·redis命令·redis 五大数据类型
Gauss松鼠会1 小时前
GaussDB 整体架构解析
运维·服务器·网络·数据库·sql·架构·gaussdb