MYSQL&MariaDB研究所

MySQL体系结构与存储引擎

2020-01-13  本文已影响0人  百里江山

MySQL是一个单进程多线程架构的数据库, MySQL数据实例在系统上表现就是一个进程

A. 数据库与数据库实例的区别

  1. 数据库是文件的集合
  2. 数据库实例是操作数据的进程.是程序是位于数据库与用户之间的一层数据管理软件.应用程序只有通过数据库实例才能与数据库打交道

B. 数据库实例操作

  1. 通过命令启动MySQL数据库实例
    ./mysqld_safe
  2. 查看datadir目录,存储数据所在的目录.
mysql>show variables like 'datadir' \G
mysql>system ls -lh /var/lib/mysql

C. MySQL体系结构

MySQL由以下几部分组成

  1. 连接池组件
  2. 管理服务和工具组件
  3. SQL接口组件
  4. 查询分析器组件
  5. 优化器组件
  6. 缓冲组件
  7. 插件式存储引擎(最大的优点)
  8. 物理文件
来自linux公社

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

D. 存储引擎

MySQL5.5.8以后,默认引擎: InnoDB

InnoDB的特点

  1. 支持行锁
  2. 支持外键
  3. 支持事务

通过mvcc实现高并发, 并实现4种隔离级别, 默认为: 可重复读.
OLTP应用中核心表的首选关系数据库引擎
OLTP,也叫联机事务处理(Online Transaction Processing)

MyISAM的特点

  1. 支持表锁
  2. 支持全文索引
  3. 不支持事务
  4. 5.0.0版本后, 单表支持存放256TB数据.
  5. 可以使用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
上一篇下一篇

猜你喜欢

热点阅读