mysql常见的存储引擎以及特点

本文深入剖析MySQL架构,包括connectors连接器、连接池、存储引擎比较(MyISAM与InnoDB)、事务处理、内存管理和缓存策略。重点讲解了InnoDB引擎的特性及常见管理命令,适合数据库管理员和开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql架构图
 
 
第一层:
connectors 连接器
第二层:连接池
Authentication:提供验证功能
Thread Reuse:线程复用
connection Limits:连接数限制,默认150个
check Memory:内存检查
Caches:缓存,mysql8.0后取消该功能,一般使用redis等缓存服务器
Sql interface:sql接口,用于执行sql命令,一般有DML、DDL等
Parser:解析器
Optimize:优化器
Caches&Buffers:热点数据缓存

 

Pluggable Storage Engines:存储引擎,mysql5.5后推荐使用innoDB


存储引擎
官方参考链接https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/storage-engines.html
查看mysql存储引擎
mysql> SHOW ENGINES\G
 
MyISAM存储引擎特点
不支持事务
表级锁定
读写相互阻塞,写入不能读,读时不能写
只缓存索引
不支持外键约束
读取数据较快,占用资源较少
不支持MVCC(多版本并发控制机制)高并发
崩溃恢复性较差
Mysql5.5前默认使用的数据库引擎
MyISAM存储引擎适用的场景
只读(或者写较少)
表较小(可以接受长时间进行修复操作)
MyISAM引擎文件
tbl_name.frm    表格式定义
tbl_name.MYD    数据文件
tbl_name.MYI    索引文件
InnoDB引擎特点
行级锁
支持事务,适合处理大量短期事务
读写阻塞与事务隔离级别相关
可以缓存数据和索引
支持聚集索引
崩溃恢复性更好
支持MVCC高并发
从mysql 5.5后支持全文索引
从mysql5.5后开始为默认数据库引擎
InnoDB数据库文件
 
所有InnoDB表的数据和索引放置在同一表空间中
数据文件:ibdata1,ibdata2,存放在datadir定义的目录下
表格式定义:tb_name.frm,存放在datadir定义的每个数据库对应的目录下
每个表单独使用一个表空间存储表的数据和索引
两类文件存放在对应每个数据库独立目录中
数据文件(存储数据和索引):tb_name.ibd
表格式定义:tb_name.frm

启用:innodb_file_per_table=ON(MariaDB 5.5以后版本是默认值)


管理存储引擎常用命令
查看mysql支持的存储引擎
show engines;
查看当前默认的存储引擎
show variables like '%storage_engine%';
设置默认的存储引擎
vim /etc/my.cnf
[mysqld]
default_storage_engine= InnoDB
查看库中所有表使用的存储引擎
show table status from [db_name];
查看库中指定表的存储引擎
show table status like 'tb_name';
show create table tb_name;
设置表的存储引擎
create table tb_name(...) engine=InnoDB;
alter table tb_name engine=InnoDB;


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值