存儲引擎:也叫表類型,相當於 table 的存儲機制、索引方案等配套相關功能。 不同的存儲引擎,由於處理方式不同,帶來的功能or優化不一樣。 要根據實際需求,選擇合理的引擎。 · 存儲類型: Myisam , InnoDB , BDB , Memory , Archive 。 · 預設的 table ...
存儲引擎:也叫表類型,相當於 table 的存儲機制、索引方案等配套相關功能。
不同的存儲引擎,由於處理方式不同,帶來的功能or優化不一樣。
要根據實際需求,選擇合理的引擎。
· 存儲類型: Myisam , InnoDB , BDB , Memory , Archive 。
· 預設的 table 類型是 InnoDB 。通過 my.ini 可以配置。不同版本的MySQL可能指定的預設版本不同。
· 創建、編輯 table 時,可以指定其存儲引擎:
tip : engine myisam 定義的位置和 character set 一樣,這兩者都屬於 table 的屬性。
可以在創建表的時候,可以同時設置這兩者,寫法:engine myisam character set utf8 ;
1. InnoDB 與 Myisam 的區別:
① 保存文件的方式不同:InnoDB 一個表一個文件:tb_name.frm(存儲結構),所有的InnoDB表都使用相同的InnoDB存儲空間在保 存數據和索引;Myisam 一個表三個文件:tb_name.frm(結構),tb_name.myd(數據),tb_name.myl(索引);
② Myisam 支持索引壓縮,InnoDB索引和數據是綁定保存,不壓縮,體積大。
③ InnoDB 很多時候是行級鎖,Myisam 是表級鎖,前者的併發高。
④ InnoDB 不支持FULLTEXI類型的索引,支持事務、外鍵、數據完整性約束要強。
InnoDB在更新、刪除上更優,Myisam 在查找、插入上更有優勢。
2. 選擇存儲引擎的依據:
① 功能; ② 性能;