MySQL 知识点整理 (一) 体系结构

感觉好久没有看MySQL相关的书了,最近边复习,边整理下感觉重要的知识点,一点点的由简入繁,先从整体概念上理解下,扩充下整个知识图谱。

一、MySQL 体系结构

image.png

基础中有两个重要概念,数据库和数据库实例。

数据库:文件的集合,依照某种数据模型组织并存放于二级存储器中的数据集合。

数据库实例:是程序,位于用户与操作系统之间的一层数据库管理软件,用户对于数据库的任何操作(DML,DDL)都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。

看了,最开始的架构图,可以了解到MySQL 由以下组成

1、连接池组件

2、管理和工具组件

3、接口组件

4、解析器组件

5、优化器组件

6、缓存组件

7、插件式的存储引擎

8、物理文件

注意:存储引擎是基于表,而不是数据库

二、存储引擎

下面介绍几个重要的存储引擎的特点

1、InnoDB

特点:

  • 支持事物,主要面向在线数据处理OLTP

  • 支持行锁设计

    • 分为共享锁和排它锁
    • 行锁有基本的三种算法
      • record: 使用 ‘=’ 符号时,只查询一行记录的时候。
      • Gap: 记录不存在的时候退化为这个,相同间隙锁不冲突, 查询id>20 其实也有可能锁住11 ,因为整个间隙都加锁
      • Next key: Gap + record
  • 支持外健.

  • 使用next-key locking的策略来避免幻读

  • 通过多版本并发控制(MVCC)获得高并发性,并实现了4种隔离级别,默认REPEATABLE.

  • 插入缓冲(insert buffer)

    • 插入缓冲,并不是缓存的一部分,而是物理页,对于非聚集索引的插入或更新操作,不是每一次直接插入索引页.而是先判断插入的非聚集索引页是否在缓冲池中.如果在,则直接插入,如果不再,则先放入一个插入缓冲区中.然后再以一定的频率执行插入缓冲和非聚集索引页子节点的合并操作
  • 二次写(double write)

    • InnoDB 的Page Size一般是16KB,其数据校验也是针对这16KB来计算的,将数据写入到磁盘是以Page为单位进行操作的。而计算机硬件和操作系统,在极端情况下(比如断电)往往并不能保证这一操作的原子性,16K的数据,写入4K 时,发生了系统断电/os crash ,只有一部分写是成功的,这种情况下就是 partial page write 问题.
    • 所以简单的说就是,在将数据写盘的时候断电了,一部分数据丢失后,根本不能从redo log来进行恢复了。其原理是在写数据页之前,先把这个数据页写到一块独立的物理文件位置(ibdata),然后再写到数据页。在宕机重启后,先通过该副本还原数据页,在使用redo log.
  • 自适应哈希索引

    • nnoDB采用自适用哈希索引技术,它会实时监控表上索引的使用情况,如果认为建立哈希索引可以提高查询效率,则自动在内存中的“自适应哈希索引缓冲区建立哈希索引
  • 预读

    • 分为线性预读和随机预读

存储其采用了聚集的方式,因此数据都是顺序存储,如没有显示的指定主键,会为每一行数据生成一个6字节的ROWID作为主键

2、MyISAM

不支持事物,表锁设计,支持全文检索,主要面向OLAP

缓冲池之缓存索引文件不缓冲数据

表由MYD 和MYI 组成,MYD存储数据,MYI 存储索引文件

3、NDB

集群存储引擎类似Oracle的RAC集群

数据全部存放在内存中

(JOIN)连接操作是在mysql数据库层完成的,而不是存储引擎层完成。(复杂的连接操作需要巨大的网络开销,因此查询巨慢)

4、Memory

表中数据存放在内存中,重启数据消失

适用于临时数据的临时表,数据仓库维度表。

默认是哈希索引,而不是B+树索引

只支持表锁,并发性能差,并不支持TEXT和BLOB类型。

存储变长字段(varchart)时,是按照定长字段(char)方式进行,因此会浪费内存

如果MYSQL数据库使用MEMORY存储引擎作为临时表来存放查询的中间结果集。如果结果集大于Memory存储引擎设置的容量,又或者其中包含TEXT 和BLOB 数据类型字段,则MySQL数据库会把其转换到MYISAM存储引擎表而存放到磁盘中。因M有ISAM不缓存数据文件,所以临时表的查询会损失性能。

先整体回顾了下大概的结构和知识点,下周主要针对InnoDB 做一个完整性的细节回顾


角儿旮旯
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,012评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,589评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,819评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,652评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,954评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,381评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,687评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,404评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,082评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,355评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,880评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,249评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,864评论 3 232
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,007评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,760评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,394评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,281评论 2 259

推荐阅读更多精彩内容