美文网首页
MySQL知识集

MySQL知识集

作者: ES_KYW | 来源:发表于2022-02-21 13:44 被阅读0次

数据库引擎


Innodb和MyISAM的区别

Innodb 支持行锁 支持表锁 支持事务 支持外键 数据存储时索引和数据在一起
MyISAM 支持表锁 不支持事务 数据存储方式 数据和索引两个单独的文件夹
Innodb:.frm文件+.idb文件(包含数据和索引)
MyISAM:.frm文件+数据文件+索引文件

常见索引


主键索引 唯一索引 普通索引 联合索引

主键索引:叶子节点中存储全量数据
唯一索引:索引键值不能重复
普通索引:叶子节点中存储主键ID,不存储全量数据
联合索引:对表中多个列进行索引,区别是联合索引的键值数量大于1,检索时遵循最左匹配原则。
如联合索引(a,b),先对索引a进行排序,然后对索引b进行排序。b依赖于a,检索时如果a的索引失效,b的索引也会失效


image.png

索引类别


聚簇索引 非聚簇索引

1.叶子节点中顺序存储数据 如主键索引
2.叶子节点中不存储全量数据,只存储主键ID 如普通索引
普通索引检索时先查到叶子节点中的主键ID,然后回表查询,通过主键索引去查询全量数据

索引查询


覆盖查询 回表查询

覆盖查询:只需要在一个索引树上能查询到所需数据,不需要回表查询全量数据
回表查询:普通索引叶子节点只存储了索引值和主键ID,查询其它数据时需要根据主键ID进行聚簇索引查询,获取到全量数据

索引数据结构


B+树

B+树和B树的区别,B+树中非叶子节点不存储数据
B树和平衡二叉树的区别,B树节点中可存储多个键值

1.非叶子节点只存储指针和索引键值,一个节点可存储多个键值,树的高度一般是3到4阶;
2.数据查询的时候是分页查询,每页的磁盘空间大小是16kb;
3.索引使用int或者varchar类型,取决于占用空间大小,int占用4个字节,大于4个字节的用int,小于4个字节的用varchar;
4.联合索引遵循最左原则;
5.索引并不是越多越好,越多占用磁盘空间越大,插入数据时越耗时;
6.索引字段的长度越短越好,字段越短非叶子节点存储的键值越多;
7.普通索引检索时先在非叶子节点中检索出主键的ID值,然后回表通过主键ID检索数据;
8.在未设置主键的表中加入一条数据,会默认增加一条主键rowid;
9.主键id最好设置成自增模式,索引数据存储是按序排列的,自增模式可以方便快速查询;

相关文章

  • MySQL知识集

    数据库引擎 Innodb和MyISAM的区别 Innodb 支持行锁 支持表锁 支持事务 支持外键 数据存储时索引...

  • 字符集与校对规则

    MySQL字符集及校对规则的理解 阅读目录:MySQL的字符集和校对规则 MySQL的字符集 MySQL与字符集 ...

  • MySQL常见问题汇集

    字符集mysql 字符集(CHARACTER SET)和校对集(COLLATE)mysql 中 character...

  • MySQL字符排序

    关于MySQL字符集 可以参考文章MySQL字符集 & 重谈MySQL字符集 目录 大小写 比较规则 大小写 _c...

  • Mysql全备、增量备份及恢复

    Mysql字符集 MySQL数据库字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念,...

  • Mysql数据库

    MySQL知识图谱 MySQL索引 MySQL架构 MySQL锁 MySQL事务 MySQL集群 MySQL分库分...

  • 2019-05-25 MySQL数据库字符集

    1. MySQL数据库字符集知识 1. 什么是字符集 字符编码就是将人类使用的汉字(或其他语言)、英文字母、特殊符...

  • Mysql字符集设置

    mysql字符集编码

  • 八、MySQL字符集

    字符集和排序规则简介   MySQL提供了多种字符集和排序规则选择,其中字符集设置和数据存储以及客户端与MySQL...

  • MySQL乱码问题

    MySQL字符集参数 MySQL参数使用 影响到字符编码的设置 数据库级别的字符集信息使用db.opt来存放字符集...

网友评论

      本文标题:MySQL知识集

      本文链接:https://www.haomeiwen.com/subject/zywblrtx.html