存儲引擎

存儲引擎:也叫表類型,指的是數據表的存儲機制、索引方案等配套相關功能。

表類型

默認的服務器表類型,通過my.int可以配置

default-storage-engine = innodb;

在創建表,或者編輯表時,可以指定表的存儲引擎:

利用表屬性:engine 引擎類型 engine myisam  engine innodb

//

alter table itcast_class engine myisam;

create table class(

 room_id int primary key auto_increment,

 room_no char(3)

) engine myisam character set utf8;

innodb&myisam區別

保存的文件方式不同:

myisam,一個表,三個文件

tbl_name.frm 結構  tbl_name.myd 數據  tbl_name.myi 索引

innodb:一個表,一個文件

tbl_name.frm 結構  所有的innodb表,都使用相同的innodb存儲表空間在保存數據和索引

區別:

數據和索引保存的文件不同:myisam是分開保存,而innodb是保存到表空間

myisam支持索引壓縮,而innodb索引和數據是綁定保存不壓縮,體積大。

innodb 很多時候是行級鎖,而myisam是表級鎖,innodb的併發高。

innodb支持事務,外鍵,數據完整性約束要強。

innodb中不保存表的具體行數,也就是說,執行select count (*)from table時,innodb要掃描一遍整個表來計算有多少行,但是myisam只要簡單的讀出保存好的行數即可.注意的是,當count(*)語句包含where條件時,兩種表的操作是一樣的。

對於AUTO_INCREMENT類型的字段,innodb中必須包含只有該字段的索引,但是在myisam表中,可以和其他字段一起建立聯合索引。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章