欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql5.7Generaltablespace使用說明

General tablespace

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

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都做網(wǎng)站、博山網(wǎng)絡(luò)推廣、微信小程序、博山網(wǎng)絡(luò)營銷、博山企業(yè)策劃、博山品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供博山建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.chinadenli.net

 

General tablespace 的優(yōu)點(diǎn)

            類似系統(tǒng)表空間,可以存儲多個(gè) schema 下的多張表。

            與 file_per_table tablespace 相比, General tablespace 有潛在的內(nèi)存的優(yōu)點(diǎn)。這種方式存儲表空間的元數(shù)據(jù)到內(nèi)存中,可以減小內(nèi)存消耗。

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

            General 支持所有的行格式,以及相關(guān)特性。

            數(shù)據(jù)表可以在 general tablespace 和 per_file_table  tablespace 之間來回移動(dòng)。類似 Oracle 數(shù)據(jù)庫的 move  table 。

 

創(chuàng)建 general tablespace 的語法

CREATE TABLESPACE tablespace_name

      ADD DATAFILE 'file_name'

      [FILE_BLOCK_SIZE = value]

        [ENGINE [=] engine_name]

注意為了避免 data directory 沖突,表空間建立在 data directory 子目錄下是不被支持的。因?yàn)?datadir 子目錄會被 MySQL 認(rèn)為是 database 。但是 general tablespace 可以建立在 datadir 下。 General tablespace 建立在非 datadir 目錄下后, data directory 下會產(chǎn)生一個(gè) .isl 文件,里面是詳細(xì)路徑。

            例如在 datadir 下面建一個(gè) general tablespace , page_size 是 8k ,默認(rèn)引擎 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 其實(shí)是路徑:

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

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

           

Information_schema 下的 INNODB_SYS_TABLESPACES 表有這些表空間的元數(shù)據(jù)信息:

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 建表空間時(shí)指定 FILE_BLOCK_SIZE=8k

Tbs02 建表空間時(shí)沒有指定 FILE_BLOCK_SIZE

FILE_BLOCK_SIZE 只有在存儲壓縮表的時(shí)候才能在建表空間的時(shí)候使用。否則建非壓縮表會報(bào)錯(cuò)。也就是說 壓縮表和非壓縮表無法在同一個(gè)表空間中 。

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)

將表空間中到的表移動(dòng)到 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 移動(dòng)到 general tablespace

mysql> alter table test02   tablespace=tbs02;

Query OK, 0 rows affected ( 9.41 sec )

Records: 0  Duplicates: 0  Warnings: 0

花了 9 秒多,說明這種移動(dòng)大表還是很花時(shí)間的。

附,將表移動(dòng)到系統(tǒng)表空間

ALTER TABLE test01 TABLESPACE  innodb_system;

 

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

mysql> drop tablespace tbs02;

ERROR 1529 (HY000): Failed to drop   TABLESPACE tbs02

 

General tablespace 的限制

General tablespace 不支持臨時(shí)表。

與系統(tǒng)表空間類似, truncate 或 drop table 只是標(biāo)記空間為可用,但是不會還給操作系統(tǒng)。

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

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

網(wǎng)站題目:mysql5.7Generaltablespace使用說明
標(biāo)題網(wǎng)址:http://www.chinadenli.net/article6/ggisig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號外貿(mào)網(wǎng)站建設(shè)網(wǎng)站維護(hù)服務(wù)器托管自適應(yīng)網(wǎng)站標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司