MysqL架构:
采用C/S架构,即客户端/服务器。客户端和服务器区分开,通过客户端发送请求来和服务器交互。
过程:
-
连接器包含了各种开发语言的接口,连接完成后MysqL会分配一个线程提供服务,执行对应操作的时候就会调用MysqL定义好的接口组件来接收请求。
-
把sql语句解析完成后,结合当前数据库状态来优化对应操作。
MysqL利用caches和buffer来提高系统系统性能。 -
数据读出和写入的时候会通过存储引擎来选择数据的相关操作,最后写入磁盘或内存。
目前主流的存储引擎:
-
myisam
-
innodb
查看系统当前支持的存储引擎:show engines;
myisam和innodb的区别:
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;
查看指定表的属性信息:
-
show table status from tb_name\G
-
show table status like 'tb_name%'
特殊存储引擎:
系统数据库:四个
-
information_schema:MysqL 5.0之后产生的,一个虚拟数据库,物理上并不存在information_schema数据库,存放MysqL的元数据信息。
-
sys 数据库:MysqL5.7之后新增加的数据库,库中所有数据源来自performance_schema。目标是把performance_schema的把复杂度降低,让DBA能更好的阅读这个库里的内容
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。