MySQL知识点很多,有人专门整理了MySQL学习的书籍

体系结构

MySQL被设计成单进程多线程的数据库。

MyzSQL体系结构

如上图,MySQL系统结构由八部分组成。

  • 连接池组件
  • 管理服务和工具组件
  • SQL接口组件
  • 查询分析组件
  • 优化器组件
  • 缓冲组件
  • 插件式存储引擎
  • 存储文件

名词解释

OLTP:联机事务处理
OLAP:联机分析处理
页: InnoDB存储引擎的表空间由段(segment),区(extent)和页(page)组成,一页默认16K。
聚集索引:正文内容按照一个特定维度排序存储,这个特定的维度就是聚集索引。比如InnoDB存储引擎里的id主键。
非聚集索引:非聚集索引项顺序存储,但索引项对应的内容却是随机存储的;如自定义的普通索引。

存储引擎

MySQL存储引擎是插件式的,可以根据MySQL预定义的接口开发自己的存储引擎。MySQL的存储引擎是表维度的,而不是数据库维度。同一个库不同表可以有不一致的存储引擎。

InnoDB

InnoDB主要用于OLTP,行锁设计,支持事务和外键,支持非锁定读。
InnoDB将数据存储在一个逻辑表空间,可以配置指定每张表存放在单独的ibd文件中。支持裸设备来建立表空间。 InnoDB通过多版本并发控制(MVCC)实现非锁定度及支持高并发。支持事务的四种隔离级别(READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ,SERIALIZABLE)
InnoDB提供了插入缓冲,二次写,自适应哈希索引,预读等高性能和高可用功能。
InnoDB数据采用聚集的存储方式,每张表的数据按照主键的顺序存放。这种存数据方式有回表的现象。可以通过建立适当的聚合索引包含需要查询的字段规避。

MyISAM

不支持事务和外键,表锁。支持全文索引。对于OLAP应用速度很快。
MyISAM存储引擎表有MYD和MYI组成。MYD存放数据,MYI存放索引。

NDB

NDB存储引擎是一个集群存储引擎。数据存在内存。页面锁,但也支持表锁。
NDB存储引擎的连接查表操作是在数据库实例层面完成的,而不是引擎层面。因此复查的连表查询网络开销比较大,可能导致性能降低。

Memory

Memory存储引擎数据存放内存,使用哈希索引。只支持表锁,不支持TEXT和BLOG类型。VARCHAR类型按CHAR类型存储,造成空间浪费。

Archive

Archive存储引擎只支持SELECT和INSERT操作,使用压缩算法压缩数据行。支持行锁,但并不支持事务安全。主要用于高速的插入和压缩功能。

MySQL连接方式

  • TCP套接字
  • 命名管道
  • 共享内存
  • Unix域套接字

MySQL知识点很多,先简单记录上面的知识点。后期把开篇提到的MySQL相关书籍读完,再抽时间更新和完善MySQL知识点内容。


Published

Category

MySQL

Tags

Stay in Touch

Friendship Links