服務(wù)項(xiàng)目:網(wǎng)站建設(shè)、仿站、程序開(kāi)發(fā)、APP開(kāi)發(fā)設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)設(shè)計(jì)、企業(yè)網(wǎng)站設(shè)計(jì)、電子商務(wù)網(wǎng)站開(kāi)發(fā)、網(wǎng)站維護(hù)、網(wǎng)站推廣、UX/UI 、HTML5、CSS3、JS / Jquery ...
四川???萍加邢薰?></a></div>
                    <div   id=四川浚??萍加邢薰? title=
四川???萍加邢薰?(開(kāi)發(fā)設(shè)計(jì)官網(wǎng))TEL : 15308000360 / QQ : 38585404

您的位置:首頁(yè) > 技術(shù)經(jīng)驗(yàn) > 數(shù)據(jù)庫(kù) > 正文

InnoDB 引擎獨(dú)立表空間 innodb_file_per_table
技術(shù)支持服務(wù)電話:15308000360 【7x24提供運(yùn)維服務(wù),解決各類系統(tǒng)/軟硬件疑難技術(shù)問(wèn)題】

使用過(guò)MySQL的同學(xué),剛開(kāi)始接觸最多的莫過(guò)于MyISAM表引擎了,這種引擎的數(shù)據(jù)庫(kù)會(huì)分別創(chuàng)建三個(gè)文件:表結(jié)構(gòu)、表索引、表數(shù)據(jù)空間。我們可以將某個(gè)數(shù)據(jù)庫(kù)目錄直接遷移到其他數(shù)據(jù)庫(kù)也可以正常工作。然而當(dāng)你使用InnoDB的時(shí)候,一切都變了。

InnoDB 默認(rèn)會(huì)將所有的數(shù)據(jù)庫(kù)InnoDB引擎的表數(shù)據(jù)存儲(chǔ)在一個(gè)共享空間中:ibdata1,這樣就感覺(jué)不爽,增刪數(shù)據(jù)庫(kù)的時(shí)候,ibdata1文件不會(huì)自動(dòng)收縮,單個(gè)數(shù)據(jù)庫(kù)的備份也將成為問(wèn)題。通常只能將數(shù)據(jù)使用mysqldump 導(dǎo)出,然后再導(dǎo)入解決這個(gè)問(wèn)題。

在MySQL的配置文件[mysqld]部分,增加innodb_file_per_table參數(shù)。

可以修改InnoDB為獨(dú)立表空間模式,每個(gè)數(shù)據(jù)庫(kù)的每個(gè)表都會(huì)生成一個(gè)數(shù)據(jù)空間。

獨(dú)立表空間:

優(yōu)點(diǎn):

1. 每個(gè)表都有自已獨(dú)立的表空間。
2. 每個(gè)表的數(shù)據(jù)和索引都會(huì)存在自已的表空間中。
3. 可以實(shí)現(xiàn)單表在不同的數(shù)據(jù)庫(kù)中移動(dòng)。
4. 空間可以回收(除drop table操作處,表空不能自已回收)

a) Drop table操作自動(dòng)回收表空間,如果對(duì)于統(tǒng)計(jì)分析或是日值表,刪除大量數(shù)據(jù)后可以通過(guò):alter table TableName engine=innodb;回縮不用的空間。

b) 對(duì)于使innodb-plugin的Innodb使用turncate table也會(huì)使空間收縮。

c) 對(duì)于使用獨(dú)立表空間的表,不管怎么刪除,表空間的碎片不會(huì)太嚴(yán)重的影響性能,而且還有機(jī)會(huì)處理。

缺點(diǎn):

單表增加過(guò)大,如超過(guò)100個(gè)G。

結(jié)論:

共享表空間在Insert操作上少有優(yōu)勢(shì)。其它都沒(méi)獨(dú)立表空間表現(xiàn)好。當(dāng)啟用獨(dú)立表空間時(shí),請(qǐng)合理調(diào)整一 下:innodb_open_files 。

InnoDB Hot Backup(冷備)的表空間cp不會(huì)面對(duì)很多無(wú)用的copy了。而且利用innodb hot backup及表空間的管理命令可以實(shí)現(xiàn)單現(xiàn)移動(dòng)。

1.innodb_file_per_table設(shè)置.開(kāi)啟方法:
在my.cnf中[mysqld]下設(shè)置
innodb_file_per_table=1

2.查看是否開(kāi)啟:
mysql> show variables like ‘%per_table%’;

3.關(guān)閉獨(dú)享表空間
innodb_file_per_table=0關(guān)閉獨(dú)立的表空間
mysql> show variables like ‘%per_table%’;



上一篇:MYSQL配置文件中文解釋
下一篇:MariaDB/MySQL配置文件參數(shù)優(yōu)化

相關(guān)熱詞搜索:innodb