1. 什么是存储引擎
相当于mysql 内置的文件系统
于linux中的文件系统打交道的层次结构
2. mysql存储引擎种类
(1)官方mysql引擎
可以为不同的表,设置不同的存储引擎。
查看存储引擎:Mysql> show engines;
列举mysql中支持存储引擎的种类?
Innodb :mysql5.5 版本以后默认的存储引擎
Myisam
CSV
Memory
(2)其他分支引擎
Percona数据库 :xtradb 珀科纳
Mariadb数据库 :innodb
其他的存储引擎支持:
TokuDB ,MyRocks :优点:压缩比较高,数据插入性能极高,适合于业务中有大量插入或者删除操作的场景;应用于数据量较大的业务
3. innodb核心特性
(1)介绍
Mvcc:多版本并发控制
聚簇索引
多缓冲区池
事务
行锁
外键
更多复制特性
支持热备
自动故障恢复
自适应hash索引: AHI
Change buffer 更改缓存区
4. 存储引擎查看
(1)使用 select 确认会话存储引擎
Select @@default_storage_engine;
(2)设置存储引擎
会话级别:(只影响当前登录的用户)
set default_storage_engine=innodb;
全局级别(需要重新启动):
set global default_storage_engine=innodb;
如果重启数据库,以上2个修改都会失效
配置文件修改:永久生效
vim /etc/my.cnf[mysqld] default_storage_engine=innodb
存储引擎是表级别的,每个表创建时可以指定不同的存储引擎,但是我们建议统一为innodb.
(3)SHOW 确认每个表的存储引擎:
SHOW CREATE TABLE City\G;
SHOW TABLE STATUS LIKE 'CountryLanguage'\G
(4) INFORMATION_SCHEMA 确认每个表的存储引擎
非系统表的存储引擎情况:
[world]>select table_schema,table_name ,engine
From information_schema.tables
where table_schema not in ('sys','mysql','information_schema','performance_schema');
Master [world]>show table status;