程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 淺析mysql 同享表空間與獨享表空間和他們之間的轉化

淺析mysql 同享表空間與獨享表空間和他們之間的轉化

編輯:MySQL綜合教程

淺析mysql 同享表空間與獨享表空間和他們之間的轉化。本站提示廣大學習愛好者:(淺析mysql 同享表空間與獨享表空間和他們之間的轉化)文章只能為提供參考,不一定能成為您想要的結果。以下是淺析mysql 同享表空間與獨享表空間和他們之間的轉化正文


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數據目次。
 
所以在做數據的移植和備份時,必定要留意數據文件的完全性.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved