mysql表空间---共享表空间、独立表空间

使用InnoDB存储引擎时,需要了解独立表空间和共享表空间。

独立表空间:

每个表会生成独立的文件来存储数据。每个表都有一个.frm的描述文件存放表结构,还有一个.idb文件存放表索引。

优点:

  1. 每个表都有自己的独立表空间;
  2. 每个表的数据和索引都会存储在各个表空间中;
  3. 可以实现单表在不同的数据进行迁移;
  4. 表空间可以回收(删除表时);
  5. 不论如何删除,表空间碎片不会太严重。

缺点:

  1. 单表增长过大时,如超过100G,表查询会比较慢

共享表空间:

数据库中的所有表数据、索引数据都放在同一个文件中,默认路径为data目录下,默认文件名为ibdata1,初始化为10M

优点:

可以将表空间分成多个文件存放在不同磁盘上。数据和文件放在一起方便管理。

缺点:

所有表数据和索引数据存放在一个文件中,将来会是一个很大的文件,拆分成多个文件后会是多个表及索引在表空间中混淆,在对一个表做大量删除操作后,表空间会有大量空隙。

 

开启独立表空间:

查看独立表空间是否开启:  show variables like 'innodb_file_per_table';

mysql表空间---共享表空间、独立表空间_第1张图片

开启和关闭独立表空间命令(需要super用户权限设置):

set global innodb_file_per_table = 1/0;

你可能感兴趣的:(mysql,mysql)