Skip to main content

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之后支持了全文索引,空间函数。