mysql 数据库
文章平均质量分 62
阿瑞的博客
你请不必打听我大名,望望无尽夜星,仍旧照亮你这一刹心境
展开
-
Mysql索引的B+树是如何生成的
B+索引树是如何生成的1.Mysql索引的B+树的生成流程如下图所示:2.1 无索引时的数据查询数据页是Mysql中数据管理的最小单元,既然我们要研究索引是如何高效查询数据的,首先我们肯定要搞清楚数据是如何存放的,数据页的结构大概是这样的:而数据表中的每行数据就存放在数据区中,数据区中每行数据以单向链表的方式,通过指针连接起来,如下图所示:同时每个数据页之间再通过双向链表的方式组织连接起来,如下图所示:(1)无索引时的数据查询通过以上对数据页以及数据页内部数据结构初步的分析,现在我们就转载 2021-05-19 13:40:53 · 1338 阅读 · 1 评论 -
面试官:mysql 索引原理
索引原理MySQL官方对索引定义:是存储引擎用于快速查找记录的一种数据结构。需要额外开辟空间和数据维护工作。索引是物理数据页存储,在数据文件中(InnoDB,ibd文件),利用数据页(page)存储。索引可以加快检索速度,但是同时也会降低增删改操作速度,索引维护需要代价。B+Tree结构MySQL数据库索引采用的是B+Tree结构,在B-Tree结构上做了优化改造。B-Tree结构索引值和data数据分布在整棵树结构中每个节点可以存放多个索引值及对应的data数据树节点中的多个索引原创 2021-04-22 23:08:58 · 233 阅读 · 0 评论 -
mysql InnoDB存储结构
从MySQL 5.5版本开始默认使用InnoDB作为引擎,它擅长处理事务,具有自动崩溃恢复的特性,在日常开发中使用非常广泛。下面是官方的InnoDB引擎架构图,主要分为内存结构和磁盘结构两大部分。原创 2021-04-25 21:58:13 · 131 阅读 · 0 评论 -
MySQL中"utf8"和"utf8mb4"的区别
最近我遇到了一个bug,我试着通过Rails在以“utf8”编码的MariaDB中保存一个UTF-8字符串,然后出现了一个离奇的错误:Incorrect string value: ‘😃 <…’ for column ‘summary’ at row 1我用的是UTF-8编码的客户端,服务器也是UTF-8编码的,数据库也是,就连要保存的这个字符串“原创 2019-05-05 13:45:45 · 175 阅读 · 0 评论 -
MySQL索引相关
1、什么是最左前缀原则?以下回答全部是基于MySQL的InnoDB引擎例如对于下面这一张表如果我们按照 name 字段来建立索引的话,采用B+树的结构,大概的索引结构如下如果我们要进行模糊查找,查找name 以“张"开头的所有人的ID,即 sql 语句为select ID from table where name like '张%’由于在B+树结构的索引中,索引项是按照索引定义里...原创 2019-05-06 11:14:17 · 217 阅读 · 0 评论 -
一条SQL语句执行得很慢的原因有哪些
一、一条 SQL 语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论。1、大多数情况是正常的,只是偶尔会出现很慢的情况。2、在数据量不变的情况下,这条SQL语句一直以来都执行的很慢。针对这两种情况,我们来分析下可能是哪些原因导致的。二、针对偶尔很慢的情况一条 SQL 大多数情况正常,偶尔才能出现很慢的情况,针对这种情况...原创 2019-05-06 11:27:12 · 255 阅读 · 0 评论