亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql5.7 General tablespace使用說明

發布時間:2020-08-11 10:03:20 來源:ITPUB博客 閱讀:179 作者:水逸冰 欄目:MySQL數據庫

General tablespace

General tablespace 是一種共享的 innodb 表空間,有點類似 ibdata1 。可以在一個表空間數據文件下存儲多張表,即使這些表來自不同的 schame

 

General tablespace 的優點

            類似系統表空間,可以存儲多個 schema 下的多張表。

            file_per_table tablespace 相比, General tablespace 有潛在的內存的優點。這種方式存儲表空間的元數據到內存中,可以減小內存消耗。

            General tablespace 可以將數據文件存在其它盤上。這樣做的好處是,比如說我需要將幾張熱點表放到更快的存儲盤上,就可以在更快的存儲盤上創建 general tablespace ,將熱點表放過去。

            General 支持所有的行格式,以及相關特性。

            數據表可以在 general tablespace per_file_table  tablespace 之間來回移動。類似 Oracle 數據庫的 move  table

 

創建 general tablespace 的語法

CREATE TABLESPACE tablespace_name

      ADD DATAFILE 'file_name'

      [FILE_BLOCK_SIZE = value]

        [ENGINE [=] engine_name]

注意為了避免 data directory 沖突,表空間建立在 data directory 子目錄下是不被支持的。因為 datadir 子目錄會被 mysql 認為是 database 。但是 general tablespace 可以建立在 datadir 下。 General tablespace 建立在非 datadir 目錄下后, data directory 下會產生一個 .isl 文件,里面是詳細路徑。

            例如在 datadir 下面建一個 general tablespace page_size 8k ,默認引擎 innodb

mysql> create tablespace tbs01 add   datafile 'tbs01.ibd' file_block_size=8192 engine=innodb; 

Query OK, 0 rows affected (0.02 sec)

mysql> create tablespace tbs02 add   datafile '/u01/mysql/3306/general_tbs/tbs02.ibd' engine=innodb;         

Query OK, 0 rows affected (0.01 sec)

Isl 其實是路徑:

[root@oradb-2062 data]# more tbs02.isl

/u01/mysql/3306/general_tbs/tbs02.ibd

           

Information_schema 下的 INNODB_SYS_TABLESPACES 表有這些表空間的元數據信息:

mysql> select   space,name,FLAG,FILE_FORMAT,PAGE_SIZE,SPACE_TYPE,FILE_SIZE,ALLOCATED_SIZE   from INNODB_SYS_TABLESPACES where name like 'tbs%'\G

*************************** 1. row   ***************************

           space: 61

            name: tbs01

            FLAG: 2089

     FILE_FORMAT: Barracuda

       PAGE_SIZE: 16384

      SPACE_TYPE: General

       FILE_SIZE: 65536

ALLOCATED_SIZE: 16384

*************************** 2. row   ***************************

           space: 63

            name: tbs02

            FLAG: 2048

     FILE_FORMAT: Any

       PAGE_SIZE: 16384

      SPACE_TYPE: General

       FILE_SIZE: 65536

ALLOCATED_SIZE: 32768

2 rows in set (0.00 sec)

 

General 表空間的使用

Tbs01 建表空間時指定 FILE_BLOCK_SIZE=8k

Tbs02 建表空間時沒有指定 FILE_BLOCK_SIZE

FILE_BLOCK_SIZE 只有在存儲壓縮表的時候才能在建表空間的時候使用。否則建非壓縮表會報錯。也就是說 壓縮表和非壓縮表無法在同一個表空間中

mysql> create table tt(a int)   tablespace=tbs01;

ERROR 1478 (HY000): InnoDB: Tablespace   `tbs01` uses block size 8192 and cannot contain a table with physical page   size 16384

建壓縮表是可以的。

mysql> create table tt(a int) tablespace=tbs01 ROW_FORMAT=COMPRESSED;

Query OK, 0 rows affected (0.02 sec)

同樣地,也不能在 tbs02 中建壓縮表

mysql> create table tt01(a int)   tablespace=tbs02 ROW_FORMAT=COMPRESSED;

ERROR 1478 (HY000): InnoDB: Tablespace   `tbs02` cannot contain a COMPRESSED table

mysql> create table tt01(a int)   tablespace=tbs02;

Query OK, 0 rows affected (0.01 sec)

將表空間中到的表移動到 file_per_table tablespace

mysql> alter table tt   tablespace=innodb_file_per_table;

Query OK, 0 rows affected (0.06 sec)

Records: 0  Duplicates: 0  Warnings: 0

 

mysql> alter table tt01   tablespace=innodb_file_per_table;

Query OK, 0 rows affected (0.04 sec)

Records: 0  Duplicates: 0  Warnings: 0

 

將一張 250 萬的表從 file_per_table tablespace 移動到 general tablespace

mysql> alter table test02   tablespace=tbs02;

Query OK, 0 rows affected ( 9.41 sec )

Records: 0  Duplicates: 0  Warnings: 0

花了 9 秒多,說明這種移動大表還是很花時間的。

附,將表移動到系統表空間

ALTER TABLE test01 TABLESPACE  innodb_system;

 

刪除表空間,注意表空間中有表的時候不能刪除成功。

mysql> drop tablespace tbs02;

ERROR 1529 (HY000): Failed to drop   TABLESPACE tbs02

 

General tablespace 的限制

General tablespace 不支持臨時表。

與系統表空間類似, truncate drop table 只是標記空間為可用,但是不會還給操作系統。

MySQL 5.7.24 版本及之后的版本,不在支持將分區放到 general tablespace 中去了。

ALTER TABLE ... DISCARD TABLESPACE and ALTER TABLE ...IMPORT TABLESPACE 不支持 general tablespace



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

冀州市| 东至县| 临澧县| 呼图壁县| 遂溪县| 图片| 鄯善县| 凤台县| 宝鸡市| 西华县| 容城县| 普陀区| 阿瓦提县| 祁阳县| 沙田区| 饶阳县| 阳信县| 巴中市| 新源县| 花莲市| 锡林郭勒盟| 临武县| 九江县| 宁明县| 南乐县| 台山市| 淮滨县| 定陶县| 新民市| 新营市| 北海市| 江山市| 聊城市| 元朗区| 桃园县| 隆德县| 宝山区| 吉林市| 宁河县| 封开县| 顺义区|