MySql存储引擎
数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作
// 查看系统支持的存储引擎
show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
// 查看默认存储引擎
show variables like 'default_storage_engine%';
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+
1 row in set (0.00 sec)
// 修改数据库临时的默认存储引擎
SET default_storage_engine=< 存储引擎名 >
// 修改my.cnf文件默认存储引擎
default-storage-engine=存储引擎名称
存储引擎 |
描述 |
ARCHIVE |
用于数据存档的引擎,数据被插入后就不能在修改了,且不支持索引。 |
CSV |
在存储数据时,会以逗号作为数据项之间的分隔符。 |
BLACKHOLE |
会丢弃写操作,该操作会返回空内容。 |
FEDERATED |
将数据存储在远程数据库中,用来访问远程表的存储引擎。 |
InnoDB |
具备外键支持功能的事务处理引擎 |
MEMORY |
置于内存的表 |
MERGE |
用来管理由多个 MyISAM 表构成的表集合 |
MyISAM |
主要的非事务处理存储引擎 |
NDB |
MySQL 集群专用存储引擎 |
MYSQL事务的优化:
1、事务本身就是进行一些sql语句的操作,所以事务的优化就是对sql语句的优化,即索引优化;
2、索引优化之外,还可以基于内存层面、缓冲区层面、磁盘层面来优化。
InnoDB内存和磁盘架构
InnoDB内存上的Buffer Pool缓冲池:
- InnoDB存储引擎层的缓冲池不属于MySql的Server层;