一. MySQL体系结构
MySQL Server连接层:连接的处理、认证授权、安全方案、检查是否超过最大连接数等.
服务层:SQL接口、解析器、查询优化器、缓存
引擎层:引擎是数据存储和提取的方式,引擎层有许多引擎可供使用,也可以自定义引擎.索引是在存储引擎层实现的.
存储层:存储数据库的相关数据,包括数据与日志等.
什么是存储引擎?
存储引擎是存储数据、建立索引、更新/查询数据等技术的实现方式.
存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型.
create table {表名}(
...
)engine = {存储引擎} ...;
show engines;
①1 特点DML操作遵循ACID模型,支持事务;
行级锁,提高并发访问性能;
支持外键FOREIGN KEY约束,保证数据的完整性和准确性;
xxx.ibd:xxx代表表名,innoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引.
参数:innodb_file_per_table:决定是多张表共用一个共享表空间还是每个表都对应一个表空间,目前默认是打开的(每个表都对应一个表空间文件)
Segment:段
Row:行
MyISAM是MySQL早期的默认存储引擎
支持表锁,不支持行锁
访问速度快
.MYI:索引
.sdi:存储表结构信息
Memory引擎的表数据是存储在内存中的,由于受到硬件问题、或断电问题的影响,只能将这些表作为临时表或缓存使用.
hash索引(默认)
xxx.sdi:存储表结构信息
数据索引在内存中.
选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎.
对于复杂的应用系统,还可以根据实际情况选择多种存储引擎进行组合.
以上就是土嘎嘎小编为大家整理的MySQL学习笔记-存储引擎相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!