標籤:blog http 使用 檔案 資料 2014 資料庫 sql
儲存引擎:也叫表類型,指的是資料表的儲存機制,索引方案等配套相關功能。不同的引擎,由於處理方式不同,會帶來不同的功能或者相應最佳化,根據實際需求選擇合理的引擎。
選擇表的儲存引擎的標準:
是否需要事務支援。
是否支援外鍵。
並發量的要求。
錯誤恢複的處理。
是否支援某些具體功能。
最常用的儲存引擎:
MyISAM, Indexed Sequential Access Method (有索引的順序存取方法)
InnoDB
區別:
資料和索引的儲存的檔案不同:MyISAM是分開儲存,而innodb是儲存到資料表空間
MyISAM支援索引壓縮,而Innodb索引和資料是綁定儲存不壓縮,體積大。
Innodb很多時候是行級鎖,而myisam是表級鎖,innodb的並發高。
InnoDB不支援FULLTEXT類型的索引(新版本的InnoDB也支援)。
Innodb支援事務,外鍵,資料完整性約束要強。而MYISAM不支援。
InnoDB 中不儲存表的具體行數,也就是說,執行select count(*) from table時,InnoDB要掃描一遍整個表來計算有多少行,但是MyISAM只要簡單的讀出儲存好的行數即可。注意的是,當count(*)語句包含 where條件時,兩種表的操作是一樣的。
對於AUTO_INCREMENT類型的欄位,InnoDB中必須包含只有該欄位的索引,但是在MyISAM表中,可以和其他欄位一起建立聯合索引。
mysql的儲存引擎預設是INNODB
在mysql的my.ini(路徑:...\MySQL\my.ini)設定檔中可以找到,如:
在建立表或者編輯表時可以指定表的儲存引擎
利用表屬性:engine 引擎類型
alter table tb_name engine 引擎類型
建立表時指定儲存引擎:
innoDB與myisam區別:
儲存的檔案方式不同
myisam 一個表,三個檔案
tb_name.frm 表結構檔案
tb_name.MYD 資料檔案(儲存引擎)
tb_name.MYI 索引
INNODB 一個表一個檔案
tb_name.frm
所有innoDB表,都使用相同的innoDB儲存空間在儲存資料和索引(...\MySQL\data\ibdata1)
隨著資料庫的增大,在data目錄下innodb的ibdata1檔案可能會不只一個,但不會區分表
另:在安裝mysql檔案的時候,配置mysql過程中也會有一步提示資料表空間檔案的安裝路徑