![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 79
朱襄夏
这个作者很懒,什么都没留下…
展开
-
索引设计的原则
联合索引本质上来说也是一个B+树,但是不同的是,单列索引的B+树的键值数量是1(即一个键值+一个页指针),但是联合索引的键值数量是大于等于2,如下图三行绿色是联合索引,粉色是记录的主键。,索引用b+树存放本身就会占据空间,而增删改的执行重建索引要消耗大量的时间成本。这个查询中只有a列和b列使用到了索引,而c列没有使用索引,因为根据最左匹配查询原则,遇到范围查询会停止。这里查stuno 可以走单列索引也可以走联合索引,但实际走了联合索引,验证了联合索引优于单列索引的原则。在多个字段都要创建索引的情况下,原创 2023-12-26 01:31:53 · 934 阅读 · 1 评论 -
MySQL索引的使用
从MySQL 8.x开始支持 隐藏索引(invisible indexes) ,只需要将待删除的索引设置为隐藏索引,使 查询优化器不再使用这个索引(即使使用force index(强制使用索引),优化器也不会使用该索引), 确认将索引设置为隐藏索引后系统不受任何响应,就可以彻底删除索引。index_name 指定索引的名称,为可选参数,如果不指定,那么MySQL默认col_name为索引名;length 为可选参数,表示索引的长度,只有字符串类型的字段才能指定索引长度;,这样做的效率其实很低。原创 2023-12-23 18:56:10 · 342 阅读 · 1 评论 -
MySQL索引初步了解
*辅助索引(普通索引/二级索引)**就是除了聚集索引之外的其他索引,不具有数据存储的功能,索引 B+ 树叶子节点存储的 data 也只是主键的值而已。可以看出B树的非叶子节点也存储了DATA,这就带来一个关键的缺陷,节点的大小是按页区指定的,非叶子节点的DATA会和POINT竞争存储空间,大概率是POINT竞争不过,导致B树的层数增加,因而降低索引的效率。而非唯一索引就是没有这种约束的索引。的角度来说,MySQL 索引分为主键索引与非主键索引、单列索引与多列索、唯一索引与非唯一索引、前缀索引与后缀索引。原创 2023-12-23 02:35:45 · 321 阅读 · 1 评论 -
Innodb内存架构和外存结构
MySQL 官方文档中给出的InnoDB的架构模型。原创 2023-12-22 19:11:48 · 928 阅读 · 0 评论 -
MySQL常见存储引擎
MyISAM提供了大量的特性,包括**全文索引、压缩、空间函数(GIS)**等,但MyISAM 不支持事务、行级 锁、外键 ,有一个毫无疑问的缺陷就是崩溃后无法安全恢复。数据文件结构:表名.frm 存储表结构 、表名.MYD 存储数据 (MYData)、 表名.MYI 存储索引 (MYIndex)5.5之前默认的存储引擎 优势是访问的 速度快 ,对事务完整性没有要求或者以SELECT、INSERT为主的应用。针对数据统计有额外的常数存储。Memory 引擎:置于内存的表。原创 2023-12-20 21:57:32 · 318 阅读 · 0 评论 -
SQL语句执行流程
如果有权限,就打开表继续执行。打开表的时候,执行器就会根据表的引擎定义,去使用这个引擎提供的接口。原创 2023-12-20 16:07:18 · 1090 阅读 · 0 评论 -
MySQL逻辑架构
MySQL内部维持着一些Cache和Buffer,比如Query Cache用来缓存一条SELECT语句的执行结果,如果能够在其中找到对应的查询结果,那么就不必再进行查询解析、优化和执行的整个过程了,直接将结果反馈给客户端。进行查询(全表检索还是使用索引检索),表之间的连接顺序如何,最后会按照执行计划中的步骤调用存储引擎提供的方法来真正的执行查询,并将查询结果返回给用户。在MySQL的查询缓存中,锁的粒度问题主要体现在查询缓存的实现方式上。比如表缓存,记录缓存,key缓存,权限缓存等。原创 2023-12-19 23:48:21 · 1068 阅读 · 1 评论 -
MySQL8安装
MySQL8.X安装教程原创 2023-12-19 11:15:45 · 700 阅读 · 1 评论 -
MySQL系统文件目录、数据文件目录
MySQL系统文件目录、数据文件目录原创 2023-12-19 13:16:33 · 1002 阅读 · 1 评论 -
事务ACID中一致性(Consistency)的理解
一致性状态原创 2022-06-21 10:46:41 · 688 阅读 · 0 评论