首頁  >  文章  >  後端開發  >  php面試題八之innoDB和myisam的差別

php面試題八之innoDB和myisam的差別

不言
不言原創
2018-04-18 09:57:0011622瀏覽

這篇文章介紹的內容是關於php面試題八之innoDB和myisam的差別,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

InnoDB:
支援事務處理等
不加鎖讀取
支援外鍵
支援行鎖
不支援FULLTEXT類型的索引
不保存資料表的具體行數,掃描表來計算有多少行
DELETE 表時,是一行一行的刪除
InnoDB 把資料和索引存放在表空間裡面
跨平台可直接拷貝使用
InnoDB中必須包含AUTO_INCREMENT類型欄位的索引
表格很難被壓縮

MyISAM:
不支援事務,回滾會造成不完全回滾,不具有原子性
不支援外鍵
不支援外鍵
支援全文搜尋
儲存表格的特定行數,不帶where時,直接傳回已儲存的行數
DELETE 表時,先drop表,然後重建表
MyISAM 表存放在三個文件。 frm 檔案存放表格定義。資料檔是MYD (MYData) 。索引文件是MYI (MYIndex)引伸
跨平台很難直接拷貝
MyISAM中可以使AUTO_INCREMENT類型欄位建立聯合索引
表格可以被壓縮

#選擇:
因為MyISAM相對簡單所以在效率上要優於InnoDB.如果系統讀多,寫少。對原子性要求低。那麼MyISAM最好的選擇。且MyISAM恢復速度快。可直接用備份覆蓋恢復。
如果系統讀少,寫多的時候,尤其是並發寫入高的時候。 InnoDB就是首選了。
兩種類型都有自己優缺點,選擇那個完全要看自己的實際類弄。

InnoDB:
支援交易處理等
不加鎖讀取
支援外鍵
支援行鎖定
不支援FULLTEXT類型的索引
不儲存表的具體行數,掃描表來計算有多少行
DELETE 表時,是一行一行的刪除
InnoDB 把資料和索引存放在表空間裡面
跨平台可直接拷貝使用
InnoDB中必須包含AUTO_INCREMENT類型欄位的索引
表格很難被壓縮

MyISAM:
不支援事務,回滾將造成不完全回滾,不具有原子性
不支援外鍵
不支援外鍵
支援全文搜尋
儲存表格的特定行數,不帶where時,直接傳回儲存的行數
DELETE 資料表時,先drop表,然後重建表
MyISAM 表被存放在三個文件。 frm 檔案存放表格定義。資料檔是MYD (MYData) 。索引文件是MYI (MYIndex)引伸
跨平台很難直接拷貝
MyISAM中可以使AUTO_INCREMENT類型欄位建立聯合索引
表格可以被壓縮

#選擇:
因為MyISAM相對簡單所以在效率上要優於InnoDB.如果系統讀多,寫少。對原子性要求低。那麼MyISAM最好的選擇。且MyISAM恢復速度快。可直接用備份覆蓋恢復。
如果系統讀少,寫多的時候,尤其是並發寫入高的時候。 InnoDB就是首選了。
兩種類型都有自己優缺點,選擇那個完全要看自己的實際類弄。

相關推薦:

php面試題七之nginx的負載平衡如何設定

php面試題六之memcache和redis的區別

php面試題五之nginx如何呼叫php和php-fpm的作用與運作原理

#

以上是php面試題八之innoDB和myisam的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn