mysql儲存引擎,mysql儲存
08-mysql儲存引擎
----儲存引擎簡介
(1)、innoDB 引擎
innoDB是mysql的一種儲存引擎,innodb給mysql的表提供了交易記錄,復原、崩潰修複能力和多版本並發控制的事務安全。
Mysql從3.23.34a開始包含innoDB儲存引擎.
innoDB是第一個提供外鍵約束的表引擎,而且innoDB擁有對交易處理的能力。也是其它引擎無法與之抗衡的。
innodb支援自動成長列使用auto_increment,自動成長列不值不可為空
innodb 儲存引擎中支援外鍵Z(foreign key),外鍵所在的表為子表,外鍵所依賴的表為父母,父表中的被子表外檢關聯的字
段必須是主鍵,當刪除、更新父表的某條資訊時,字表也必須有相應的改變,
innodb儲存引擎中,建立表的表結構儲存在.frm檔案中,資料和索引儲存在innodb_data_home_dir 和innodb_data_file_path定義的資料表空間.
資料檔案:*.myd
索引檔案:*.myi
表定義檔案:*.frm
Inoodb儲存引擎的優缺點:
優勢:在於提供了良好的交易管理、崩潰、修複能力和並發控制,
缺點:是其讀寫效率稍差,佔用的資料空間相對比較大.
(2)、MyISAM引擎
MyISAM儲存表分為3個檔案,檔案與表名相同,擴充包括frm,MYD和MYI,
Frm 為副檔名的檔案儲存體表的結構
MYD 為副檔名的檔案儲存體資料
MYI 為副檔名的檔案儲存體索引
優點:佔用空間小,處理速度快
缺點: 不支援交易記錄的完整性和並發性
(3)、MEMORY 引擎
Mysql中的特殊引擎,所有的資料全部存放於記憶體當中,在企業生產環境當中。幾乎
是用不到。因為資料存放區在記憶體,如果記憶體出現異常。將影響資料的完整性。
優點:儲存速度快
缺點:缺乏穩定性和完整性
----儲存引擎查看
儲存引擎是Mysql的特點,Mysql可以選擇多種儲存引擎及不同的儲存方式,是否進行事物處理等。
(1)、查詢Mysql支援的引擎
Mysql->show engines;
Mysql->show engines\G; +G和不加G兩種不同的顯示方式。
(2)、查詢Mysql支援引擎的資訊
Mysql->show variables like ‘have%’
第一列:Variable_name 表示儲存引擎的名稱,
第二列:Value 表示Mysql的支援情況,YES表示支援,NO表示不支援
DISABLED表示支援但是有開啟。
(3)、查詢Mysql預設儲存引擎
Mysql-> show variables like 'storage_engine';
如果想修改儲存引擎,可以在 my.ini中進行修改
Default-storage-engine=引擎類型
----如何選擇儲存引擎 在企業生產環境中,選擇一個款合適的儲存引擎是一個很複雜的問題。每一種儲存引擎都有各自的優勢,不能笼統的說,誰比誰好。
通常用的比較多的是innodb儲存引擎
怎查看MySQL的當前儲存引擎?
一般情況下,mysql會預設提供多種儲存引擎,你可以通過下面的查看:
看你的mysql現在已提供什麼儲存引擎:
mysql> show engines;
看你的mysql當前預設的儲存引擎:
mysql> show variables like '%storage_engine%';
你要看某個表用了什麼引擎(在顯示結果裡參數engine後面的就表示該表當前用的儲存引擎):
mysql> show create table 表名;
對於MYSQL儲存引擎的問題
查看預設及支援的儲存引擎
mysql> show engines;
查看錶的儲存引擎
mysql> show create table users;
要修改儲存引擎只能在建立表的時候指定或後面修改
CREATE TABLE mytable (id int, titlechar(20)) ENGINE = INNODB
ALTER TABLE engineTest ENGINE = INNODB;
預設儲存引擎沒辦法即時修改(至少我是沒發現修改的方法)