mysql体系结构
参考:https://www.cnblogs.com/itwxe/p/15826838.html
mysql体系结构:连接层、服务层、引擎层、存储层
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,索引存储引擎也可以被称为表类型。
一个数据库的多张表可以有不同的存储引擎!
查询某个表的建表语句:
show create table t_user
NGINE=InnoDB(看到默认是InnoDB)
查询当前数据库所支持的引擎:
show ENGINES
innodb
介绍:
innodb是一种兼顾高可靠和高性能的通用存储引擎,在mysql5.5之后,innodb是默认的mysql存储引擎。
特点:
1、DML(数据增、删、改语句)操作遵循ACID(事务的四大特性)模型,支持事务;
2、行级锁,提高并发访问性能;
3、支持外键FOREIGN KEY约束,保证数据的完整性和正确性;
文件:
xxx.ibd: xxx代表的是表名,innodb引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm,sdi)、数据和索引。
参数:innodb_file_per_table
innoDB逻辑存储结构
参考:https://blog.csdn.net/weixin_52690231/article/details/123547614
MyISAM 存储引擎
是mysql早期的默认存储引擎
特点:
不支持事务,不支持外键
支持表锁,不支持行锁
访问速度快
memory 存储引擎
memory引擎的表数据时存储在内存
选择:
MyISAM存储引擎
如果表对事务要求不高,同时是以查询和添加为主的,我们考虑使用myisam存储引擎. 比如 bbs 中的 发帖表,回复表。
INNODB存储引擎:
对事务要求高,保存的数据都是重要数据,我们建议使用INNODB,比如订单表,账号表。
Memory 存储
我们数据变化频繁,不需要入库,同时又频繁的查询和修改,我们考虑使用memory, 速度极快。
现在用的最多的是innodb引擎,其他两个都被代替了,myisam被mongodb代替,memory被redis代替