当前标签:MySQL

[NOTE-MySQL]InnoDB存储引擎

InnoDB 是事务安全的 MySQL 存储引擎。完整支持ACID事务,行锁设计,支持MCC,一致性非锁定读,支持外键,最有效利用内存和CPU。

InnoDB体系架构

InnoDB有多个内存块,组成一个大的内存池,负责如下工作:

维护所有进程/线程需要访问的多个内部数据结构。

缓存磁盘上的数据,方便快速的读取,并且对磁盘文件的数据进行修改之前在这里缓存。

重做日志(redo log)缓冲

….

Read more

[NOTE-MySQL]MySQL体系结构和存储引擎

MySQL设计为一个可移植的数据库,可以在几乎所有操作系统上运行。

数据库和实例

数据库:物理操作系统文件或其他形式文件类型的集合。
数据库实例:由数据库后台进程/线程以及一个共享内存区组成。数据库实例才是真正用来操作数据库文件的。

两者通常一一对应,但是要知道集群情况下一个数据库可以被多个实例使用。

MySQL简述

MySQL是一个单进程多线程架构的数据库。比如用mysqld_safe启动,可以观察到就一个进程。

MySQL启动会多处位置寻找其配置文件my.cnf,比如 /etc/my.cnf -> /etc/mysql/my.cnf -> /usr/local/mysql/etc/my.cnf -> ~/.my.cnf 顺序寻找等等,如果多个均存在时,会以读取到的最后一个配置文件中的参数为准。Linux下一班存放在/etc/my.cnf下。

datadir指定数据库所在路径。比如可以通过 show variables like 'datadir'来查看

MySQL体系结构

image

Level1:管理服务和工具组件 连接池组件

Level2:管理服务和工具组件 SQL接口组件 & 查询分析器组件 & 优化器组件 & 缓存(Cache)组件

Level3:插件式存储引擎

Level4:物理文件

存储引擎是基于表的而不是数据库

Read more