MySQL5.6開始可以使用獨立表空間, innodb_file_per_table=1
MySQL5.6開始可以使用獨立表空間:
MySQL5.6
innodb_file_per_table=1 #使用獨立表空間,動態引數。(5.6預設OFF,5.7預設ON)
1、drop/truncate table方式操作表空間能自動回收(磁碟空間)
1)、建立procedure,迴圈insert一定量資料
##use test
##drop procedure pro1;
DELIMITER //
create procedure pro1()
begin
declare i int;
set i=1;
while i<100000 do
insert into test.cc(id,name) values(i, "aa");
set i=i+1;
end while;
end;//
2)、呼叫procedure :
mysql> call pro1();
3)、檢視錶大小、資料量:
select table_name, (data_length+index_length)/1024/1024 as total_mb, table_rows
from information_schema.tables where table_schema='test' and table_name='CC';
+------------+------------+------------+
| table_name | total_mb | table_rows |
+------------+------------+------------+
| cc | 3.51562500 | 100246 |
+------------+------------+------------+
1 row in set (0.31 sec)
4)、truncate清表:
mysql> truncate table test.cc;
Query OK, 0 rows affected (0.73 sec)
5)、再次檢視錶空間已經回收:
cc.ibd 由 11264KB 回收到96KB 。
mysql> select table_name, (data_length+index_length)/1024/1024 as total_mb, table_rows
-> from information_schema.tables where table_schema='test' and table_name='CC';
+------------+------------+------------+
| table_name | total_mb | table_rows |
+------------+------------+------------+
| cc | 0.01562500 | 0 |
+------------+------------+------------+
1 row in set (0.00 sec)
mysql>
mysql> select version();
+------------+
| version() |
+------------+
| 5.7.11-log |
+------------+
1 row in set (0.08 sec)
mysql>
注:drop table test.cc ; 物理檔案cc.ibd也會同時被刪除。
2、獨立表空間下,可以自定義表的儲存位置,(有時將部分熱表放在不同的磁碟可有效地提升IO效能)
create table test(id int) data directory='c:/software';
create table test1(id int,name varchar(20),primary key (id)) data directory='c:/software';
3、獨立表空間下,可以回收表空間碎片(比如一個非常大的delete操作之後釋放的空間)
1)建立測試表
DELIMITER //
create procedure pro_test1()
begin
declare i int;
set i=1;
while i<10000 do
insert into test.test1(id,name) values(i, "aa");
set i=i+1;
end while;
end;//
##call pro_test1();
表大小:test1.ibd 368KB
2)delete後表大小:
2)delete後表大小:
mysql> delete from test1;
test1.ibd 384KB
3)回收表空間
3)回收表空間
mysql> alter table test1 engine=innodb;
test1.ibd 96KB
mysql> select table_name, (data_length+index_length)/1024/1024 as total_mb, table_rows
from information_schema.tables where table_schema='test' and table_name='TEST1';
+------------+------------+------------+
| table_name | total_mb | table_rows |
+------------+------------+------------+
| test1 | 0.01562500 | 0 |
+------------+------------+------------+
1 row in set (0.00 sec)
| table_name | total_mb | table_rows |
+------------+------------+------------+
| test1 | 0.01562500 | 0 |
+------------+------------+------------+
1 row in set (0.00 sec)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27126919/viewspace-2126817/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 引數- Innodb_File_Per_Table(獨立表空間)MySql
- 為Zabbix MySQL設定獨立表空間innodb_file_per_tableMySql
- MySQL InnoDB 共享表空間和獨立表空間MySql
- MySQL InnoDB 共享表空間和獨立表空間MySql
- MySQL 中的共享表空間與獨立表空間如何選擇MySql
- MySQL UNDO表空間獨立和截斷MySql
- mysql無備份恢復-獨立表空間MySql
- MySQL innoDB獨立表空間和共享表空間的優點和缺點介紹MySql
- mysql之 共享表空間與獨立表空間、frm,MYD,MYI.idb,par檔案說明MySql
- MySQL InnoDB獨立表空間模式的優點和缺點介紹MySql模式
- 獨立IP的網站空間有什麼優勢?網站
- 表空間中有資料也可以壓縮表空間(資料檔案)大小
- 1.week 獨立開發初體驗
- PostgreSQL空間獨立事件相關性分析二-人車擬合SQL事件
- oracle 表空間,臨時表空間使用率查詢Oracle
- #1全職獨立開發兩週總結
- 獨立高防伺服器特點免費全能空間存在嗎伺服器
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- oracle表及表空間使用情況Oracle
- Oracle新建使用者、表空間、表Oracle
- 查使用表空間的sessionSession
- 查詢表空間已使用空間和空閒空間的簡單檢視
- 臨時表空間和回滾表空間使用率查詢
- 根據源庫表空間實際使用建立表空間指令碼指令碼
- WebBrowser獨立IE使用代理Web
- 獨立開發挑戰
- Backup And Recovery User's Guide-從RMAN開始-恢復表空間GUIIDE
- 臨時表空間的空間使用情況查詢
- 獨立主機相對於其他網站空間的優勢有哪些?網站
- 分析表空間空閒率並收縮表空間
- 如果INDEX表空間滿了,資料是否可以插入Index
- 指令碼建立表空間、使用者、表指令碼
- 表空間使用量查詢
- 查詢表空間使用情況
- DB2_使用大表空間DB2
- 檢視單個SQL消耗TEMP表空間以及TEMP表空間使用率SQL
- 【UNDO】使用重建UNDO表空間方法解決UNDO表空間過大問題
- 應用系統按表空間的應用方式使用,表空間的配置