MySQL体系结构与存储引擎
2020-01-13 本文已影响0人
百里江山
MySQL是一个单进程多线程架构的数据库, MySQL数据实例在系统上表现就是一个进程
A. 数据库与数据库实例的区别
- 数据库是文件的集合
- 数据库实例是操作数据的进程.是程序是位于数据库与用户之间的一层数据管理软件.应用程序只有通过数据库实例才能与数据库打交道
B. 数据库实例操作
- 通过命令启动MySQL数据库实例
./mysqld_safe
- 查看datadir目录,存储数据所在的目录.
mysql>show variables like 'datadir' \G
mysql>system ls -lh /var/lib/mysql
C. MySQL体系结构
MySQL由以下几部分组成
- 连接池组件
- 管理服务和工具组件
- SQL接口组件
- 查询分析器组件
- 优化器组件
- 缓冲组件
- 插件式存储引擎(最大的优点)
- 物理文件
注:存储引擎是基于表的, 而不是数据库
D. 存储引擎
MySQL5.5.8以后,默认引擎: InnoDB
InnoDB的特点
- 支持行锁
- 支持外键
- 支持事务
通过mvcc实现高并发, 并实现4种隔离级别, 默认为: 可重复读.
OLTP应用中核心表的首选关系数据库引擎
OLTP,也叫联机事务处理(Online Transaction Processing)
MyISAM的特点
- 支持表锁
- 支持全文索引
- 不支持事务
- 5.0.0版本后, 单表支持存放256TB数据.
- 可以使用myisampack压缩数据(原理采用huffman编码静态算法). 压缩后是只读的.
myisam存储引擎由MYD和MYI组成, MYD是存储数据文件, MYI是存储索引文件.
注: show engines \G
查看您的数据库支持哪些引擎
E. 连接MySQL
TCP/IP套接字方式
可以跨服务器访问连接
mysql -h localhost -P 3306 -u root -p
Unix域方式
只能在同一台服务上使用.
# 先查询socket文件所在位置
show variables like 'socket';
# 然后使用socket文件连接
mysql -uroot -S /var/lib/mysql/mysql.sock -p