数据库
首页 > 数据库> > MySQL架构和存储引擎、系统默认数据库介绍

MySQL架构和存储引擎、系统默认数据库介绍

作者:互联网

MySQL架构:

采用C/S架构,即客户端/服务器。客户端和服务器区分开,通过客户端发送请求来和服务器交互。

过程:
  1. 用户通过开发的应用程序来访问数据库(C/S),应用程序通过连接器(connecter)连接到数据库。

  2. 连接器包含了各种开发语言的接口,连接完成后MySQL会分配一个线程提供服务,执行对应操作的时候就会调用MySQL定义好的接口组件来接收请求。

  3. 把sql语句解析完成后,结合当前数据库状态来优化对应操作。
    mysql利用caches和buffer来提高系统系统性能。

  4. 数据读出和写入的时候会通过存储引擎来选择数据的相关操作,最后写入磁盘或内存。

目前主流的存储引擎:

存储引擎:MySQL管理数据文件的一种技术。

查看系统当前支持的存储引擎:show engines;
myisam和innodb的区别:
  1. 最大支持数据量:myisam>innodb

  2. 事务:myisam不支持,

  3. 锁:innodb支持行级锁,myisam只支持表锁(整张表加锁)

  4. MVCC(多版本并发控制):允许多用户进行访问(并发),myisam不支持,

  5. 聚集索引:innodb支持

  6. 缓存:innodb支持

  7. 外键:myisam不支持

myisam和innodb特点:
mysql5.5版本以前使用的是myisam作为默认存储引擎,5.5以后使用的默认存储引擎就是innodb了。
myisam和innodb对应的数据库文件:
myisam:
innodb:
MySQL5.5以前:
早期innodb类型的数据表只有一个frm文件,而数据文件只有一个,这个数据文件存放了innodb类型的所有表的数据。

修改方法: 启用:innodb_file_per_table=ON (MariaDB 5.5以后版是默认值)
mysql> select @@innodb_file_per_table;
+-------------------------+
| @@innodb_file_per_table |
+-------------------------+
|                       1 |
+-------------------------+
1 row in set (0.00 sec)

修改存储引擎的方法:

方法1:
vim /etc/my.cnf
[mysqld]
default_storage_engine= InnoDB

方法2:
CREATE TABLE tb_name(... ) ENGINE=InnoDB;
ALTER TABLE tb_name ENGINE=InnoDB;
查看指定表的属性信息:
特殊存储引擎:
系统数据库:四个

标签:存储,架构,数据库,引擎,innodb,myisam,MySQL
来源: https://www.cnblogs.com/heyongshen/p/16685246.html