国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

淺析mysql 共享表空間與獨享表空間以及他們之間的轉化

2020-01-18 23:37:14
字體:
來源:轉載
供稿:網友
innodb這種引擎,與MYISAM引擎的區別很大。特別是它的數據存儲格式等.
對于innodb的數據結構,首先要解決兩個概念性的問題: 共享表空間以及獨占表空間。
什么是共享表空間和獨占表空間
共享表空間以及獨占表空間都是針對數據的存儲方式而言的。
共享表空間:  某一個數據庫的所有的表數據,索引文件全部放在一個文件中,默認這個共享表空間的文件路徑在data目錄下。 默認的文件名為:ibdata1  初始化為10M。
獨占表空間:  每一個表都將會生成以獨立的文件方式來進行存儲,每一個表都有一個.frm表描述文件,還有一個.ibd文件。 其中這個文件包括了單獨一個表的數據內容以及索引內容,默認情況下它的存儲位置也是在表的位置之中。
兩者之間的優缺點
共享表空間:
優點:
可以放表空間分成多個文件存放到各個磁盤上(表空間文件大小不受表大小的限制,如一個表可以分布在不同步的文件上)。數據和文件放在一起方便管理。
缺點:
所有的數據和索引存放到一個文件中以為著將有一個很常大的文件,雖然可以把一個大文件分成多個小文件,但是多個表及索引在表空間中混合存儲,這樣對于一個表做了大量刪除操作后表空間中將會有大量的空隙,特別是對于統計分析,日值系統這類應用最不適合用共享表空間。
獨立表空間:在配置文件(my.cnf)中設置: innodb_file_per_table
優點:
1.  每個表都有自已獨立的表空間。
2.  每個表的數據和索引都會存在自已的表空間中。
3.  可以實現單表在不同的數據庫中移動。
4.  空間可以回收(除drop table操作處,表空不能自已回收)
a)   Drop table操作自動回收表空間,如果對于統計分析或是日值表,刪除大量數據后可以通過:alter table TableName engine=innodb;回縮不用的空間。
b)   對于使innodb-plugin的Innodb使用turncate table也會使空間收縮。
c)   對于使用獨立表空間的表,不管怎么刪除,表空間的碎片不會太嚴重的影響性能,而且還有機會處理。
缺點:
單表增加過大,如超過100個G。

相比較之下,使用獨占表空間的效率以及性能會更高一點。
共享表空間以及獨占表空間之間的轉化
innodb_file_per_table 通過這個參數來實現的轉化,如果為OFF說明所使用的是獨占表空間【默認情況下,所使用的表空間為共享表空間】

image

innodb_file_per_table值來進行修改即可,但是對于之前使用過的共享表空間則不會影響,除非手動的去進行修改或者是
innodb_file_per_table=1 為使用獨占表空間
innodb_file_per_table=0 為使用共享表空間
修改獨占空表空間的數據存儲位置
innodb_data_home_dir = "C:/mysql/data/"
innodb_log_group_home_dir = "C:/mysql/data/"
innodb_data_file_path=ibdata1:10M:autoextend
innodb_file_per_table=1
參數說明:
這個設置配置一個可擴展大小的尺寸為10MB的單獨文件,名為ibdata1。沒有給出文件的位置,所以默認的是在MySQL的數據目錄內。【對數據來進行初始化的設置】
innodb_data_home_dir              代表為數據庫文件所存放的目錄
innodb_log_group_home_dir       為日志存放目錄
innodb_file_per_table               是否使用共享以及獨占表空間來

以上的幾個參數必須在一起加入。
對于參數一些注意的地方
InnoDB不創建目錄,所以在啟動服務器之前請確認”所配置的路徑目錄”的確存在。這對你配置的任何日志文件目錄來說也是真實的。使用Unix或DOS的mkdir命令來創建任何必需的目錄。

通過把innodb_data_home_dir的值原原本本地部署到數據文件名,并在需要的地方添加斜杠或反斜杠,InnoDB為每個數據文件形成目錄路徑。
如果innodb_data_home_dir選項根本沒有在my.cnf中提到,默認值是“dot”目錄 ./,這意思是MySQL數據目錄。
 
所以在做數據的移植以及備份時,一定要注意數據文件的完整性.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高州市| 彩票| 牙克石市| 平昌县| 三穗县| 盐城市| 光泽县| 扎兰屯市| 凤庆县| 沽源县| 白河县| 无极县| 安平县| 德令哈市| 寻乌县| 邓州市| 陕西省| 祁东县| 镇远县| 上杭县| 高州市| 佛坪县| 化德县| 宁阳县| 云阳县| 保靖县| 文山县| 儋州市| 武定县| 确山县| 萨迦县| 台南市| 和田市| 邓州市| 达尔| 绥宁县| 绥宁县| 巨野县| 娱乐| 通辽市| 栾城县|