InnoDB表
Innodb使用表空间进行数据存储
ON:独立表空间:tablename.ibd
OFF:系统表空间:ibdataX
查看表空间
show variables like 'innodb_file_per_table' ;
设置表空间
set global innodb_file_per_table=off ;
推荐使用独立表空间。
可以通过optimize table命令收缩系统文件
系统表空间清除数据,所占空间不会减小。容易产生IO瓶颈
把系统表空间转移到独立表空间的方法
1.使用mysqldump导出所有数据库表数据
2.停止mysql服务,修改参数,并删除Innodb相关文件。
3.重启mysql服务,重建Innodb系统表空间
4.重新导入数据。
查看缓存区大小
show variables like 'innodb_log_buffer_size';
查看ib_logfileX文件个数
show variables like 'innodb_log_files_in_group';
Redo Log用来记录已经提交的事务 顺序写入
Undo Log用来记录未提交事务,用来数据回滚。 随机读写
begin;
加独占锁(表级)
lock table myinnodb write;
阻塞 死锁
死锁系统会自动回滚事务
Innodb状态检查
show engine innodb status
mysql5.7之后支持了全文索引,空间函数。