数据库优化 学习笔记
一、MySQL引擎 之 InnoDB
- MySQL5.5 及之后版本默认存储引擎,支持事务的ACID特性
1.1、表空间
Innodb 使用表空间进行数据存储。
-- 查看表的空间类型
show variables like 'innodb_file_per_table';
-- 修改表的类型
-- on 或 1 表示独立表空间
-- off 或 0 表示系统表空间
set global innodb_file_per_table= on/off/1/0;
-- 注意
-- 这个修改并不是正在的修改, 只是临时的修改
-- 因为重启 MySQL, 或者关闭 cmd 窗口(如果是使用cmd窗口修改的话), 那么它有会边回默认的值
-- 若相应正在的修改, 那么需要修改 MySQL 的配置文件
-
独立表空间
文件保存为表名.ibd
存储在与表的结构文件(frm) 存放在同一文件夹下,即对应数据库文件夹下 -
系统表空间
文件保存为ibdataX .ibd (X 是一个数字)
存储在 MySQL 的 data文件下,即数据库的上一级文件夹下
1.2、系统表空间和独立表空间如何选择?
-
系统表空间会产生 IO 瓶颈,刷新数据的时候是顺序进行的,所以会产生文件的 IO 瓶颈
-
独立表空间可以同时向多个文件刷新数据
二、InnoDB 存储引擎的特性
-
支持事务的ACID特性
-
Innodb 支持行级锁,可以最大程度的支持并发