MySQL 体系结构和存储引擎
数据库: 物理操作系统文件或其他形式文件类型的集合
实例: MySQL数据库向后台线程以及一个共享内存区组成,共享内存可以被运行的后台线程所共享
MySQL 数据库实例在某统上的表现就是一个进程。
MySQL 体系结构
- 连接池组件
- 管理服务和工具组件
- SQL 接口组件
- 查询分析器组件
- 优化器组件
- 缓冲(Cache ) 组件
- 插件式存储引擎
- 物理文件

从概念上讲
数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合。
数据库实例是程序,是位于用户与操作系统之间的一层数据管理软件,用户对数据库数据的任何操作,包括数据库定义、数据查询、数据维护、数据库运行控制等都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道
存储引擎是基于袤的,而不是鼓据库
InnoDB 存储引擎

从MySQL 数据库5.5.8 版本开始, InnoDB 存储引擎是默认的存储引擎。
- InnoDB存储引擎支持事务、行级索引、支持外键、提供一致性非锁定读
- 将数据存放在逻辑的表空间中
- 支持用裸设备(row disk) 用来建立其表空间
- InnoDB通过使用多版本并发控制(MVCC) 来获得高并发性,并且实现了SQL标准的4 种隔离级别,默认为REPEATABLE级别
- 使用一种被称为next-key locking的策略来避免幻读(Cphantom)现象的产生
- 提供插入缓冲(insert buffer) 、二次写(double write) 、自适应哈希索引(adaptive hash index)、预读(read ahead )等高性能和高可用的功能
- 采用聚集(c1ustered) 方式,每张表的存储都是按主键顺序进行存放。如果没有显式地在表定义时指定主键,InnoDB 存储引擎会为每一行生成一个6 字节的ROWID,并以此作为主键。
MylSAM 存储引擎

在MySQL5.5.8版本之前MyISAM是默认的存储引擎(除Windows版本外)。
- 擎不支持事务、表锁设计,通常用于只读或以读为主的工作负载,支持全文索引
- 对于MylSAM 存储引擎表, MySQL数据库只缓存索引文件,数据文件的缓存主由操作系统本身来完成,这与其他使用LRU 算法缓存数据的大部分数据库大不相同
- MylSAM 存储引擎表由MYD 和MYI 组成, MYD 用来存放数据文件, MYI 用来存放索引文件
- 在MySQL 5.1.23 版本之前,32/64位操作系统下,缓存索引文件缓冲区最大只能设置为4GB,之后版本的64位系统支持大于4GB的索引缓冲区
- MySQL 5.0 版本开始, MylSAM 默认支持256TB 的单表数据
CREATE TABLE t (i INT) ENGINE = MYISAM; --指定存储引擎
存储引擎间的比较

mysql> show engines \G;
*************************** 1. row ***************************
Engine: InnoDB
Support: DEFAULT
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
XA: YES
Savepoints: YES
*************************** 2. row ***************************
Engine: MRG_MYISAM
Support: YES
Comment: Collection of identical MyISAM tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 3. row ***************************
Engine: MEMORY
Support: YES
Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 4. row ***************************
Engine: BLACKHOLE
Support: YES
Comment: /dev/null storage engine (anything you write to it disappears)
Transactions: NO
XA: NO
Savepoints: NO
*************************** 5. row ***************************
Engine: MyISAM
Support: YES
Comment: MyISAM storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 6. row ***************************
Engine: CSV
Support: YES
Comment: CSV storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 7. row ***************************
Engine: ARCHIVE
Support: YES
Comment: Archive storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 8. row ***************************
Engine: PERFORMANCE_SCHEMA
Support: YES
Comment: Performance Schema
Transactions: NO
XA: NO
Savepoints: NO
*************************** 9. row ***************************
Engine: FEDERATED
Support: NO
Comment: Federated MySQL storage engine
Transactions: NULL
XA: NULL
Savepoints: NULL
9 rows in set (0.24 sec)
参考资料
- 《MySQL技术内幕:InnoDB存储引擎》
MySQL 体系结构和存储引擎的更多相关文章
- MySQL技术内幕读书笔记(一)——Mysql体系结构和存储引擎
目录 MySQL体系结构和存储引擎 定义数据库和实例 MYSQL体系结构 MYSQL存储引擎 MySQL体系结构和存储引擎 定义数据库和实例 数据库:物理操作系统文件或者其他形式文件类型的结合.在MY ...
- MySQL体系结构和存储引擎概述
MySQL体系结构和存储引擎概述 一.定义数据库和实例 数据库: 物理操作系统文件或其他形式文件类型的集合.数据库文件可以是frm.MYD.ibd 结尾的文件. 从概念上来说,数据库是文件的集合,是 ...
- MySQL 体系结构及存储引擎
MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ...
- MySQL笔记(1)---MySQL体系结构和存储引擎
1.前言 本系列记录MYSQL数据库的一些结构和实现特点,方便查询. 2.基本概念 数据库:物理操作系统文件或者其他形式文件类型的集合.MySQL中数据库文件可以是frm.MYD.MYI.ibd结尾的 ...
- 详解mysql体系结构和存储引擎
概述 之前整理的一些mysql方面内容,适合做备忘,因为我基本不会去记这些概念性的东西,大家做个了解就可以了. 一.定义数据库和实例 1.数据库: 物理操作系统文件或其他形式文件类型的集合. 在MyS ...
- MySQL技术内幕InnoDB存储引擎(一)——MySQL体系结构和存储引擎
1.数据库和实例 数据库(database)和实例(instance)不能混淆. 什么是数据库 数据库是物理操作系统文件或其他文件类型的集合.说白了,就是存储着的文件,不会运行起来,只能被实例增删改查 ...
- 【MySQL】(一)MySQL 体系结构和存储引擎
1.1.定义数据库和实例 数据库:物理操作系统文件或其他形式文件类型的集合.在MySQL数据库中,数据库文件可以是frm.MYD.MYI.ibd结尾的文件. 实例:MySQL数据库由后台线程以及一个共 ...
- MySQL体系结构与存储引擎
MySQL 体系结构 先看 MySQL 数据库的体系结构,如下图所示. MySQL 体系结构由 Client Connectors 层.MySQL Server 层及存储引擎层组成. Client C ...
- 第1章 MYSQL 体系结构和存储引擎
一.定义数据库和实例 在集群的条件下,存在单个数据库对应多个实例 二.Mysql 体系结构 三.Mysql 存储引擎及各存储引擎之间的比较 命令:show engines; 四.连接 MySQL 4. ...
随机推荐
- git github usage
以gerrit-trigger-plugin为例,下面的链接都是从相应页面上直接拷贝的. 法一:不用github的账号,打开这个库在github上的主页,运行下面命令即可 read only 运行命令 ...
- Python如何实现单例模式?其他23种设计模式python如何实现?
#使用__metaclass__(元类)的高级python用法 class Singleton2(type): def __init__(cls, name, bases, dict): super( ...
- python面试题(四)
1 常用字符串格式化哪几种? 最方便的 print('hello %s and %s' % ('df', 'another df')) 复制代码 但是,有时候,我们有很多的参数要进行格式化,这个时候, ...
- MD5,SHA256,时间戳获取
import hashlib # MD5加密 def jiamimd5(src): m = hashlib.md5() m.update(src.encode('UTF-8')) return m.h ...
- [LeetCode-21]Construct Binary Tree from Preorder and Inorder Traversal
Given preorder and inorder traversal of a tree, construct the binary tree. Note: You may assume that ...
- Java并发—线程池框架Executor总结(转载)
为什么引入Executor线程池框架 new Thread()的缺点 每次new Thread()耗费性能 调用new Thread()创建的线程缺乏管理,被称为野线程,而且可以无限制创建,之间相互竞 ...
- CoreThink主题开发(九)使用H-ui开发博客主题之用户个人主页
感谢H-ui.感谢CoreThink! 效果图: 这里使用table布局 /Theme/Blog/User/Index/home.html <extend name="$_home_ ...
- SecureCRT卡死的问题
ctrl+s是一个古老的shell控制键,不小心按倒就卡死了.在输入ctrl+q就可以恢复了
- phonegap file api
https://github.com/chrisben/imgcache.js/tree/master/examples 1.FILE API file api最大的两个功能是download和upl ...
- zabbix监控Mariadb数据库
1.介绍: zabbix自带的MySQL插件来监控mysql数据库,但是太过简陋,基本没有啥作用,所以需要做更详细的监控,而percona就有这个详细监控的模版以及脚本,正好拿过来用. percona ...