1. 程式人生 > 其它 >mysql 基礎(儲存引擎)

mysql 基礎(儲存引擎)

儲存引擎:
InnoDb:
特點:
支援事務;行級鎖,提高併發訪問效能;支援外來鍵FOREIGN KEY約束,保證資料的完整性和正確性
檔案:
xxx.ibd:xxx代表的是表名,innoDB引擎的每張表都會對應這樣一個表空間檔案,儲存該表的表結構(frm、sdi)、資料和索引。
引數:innodb_file_per_table
MyISAM:
不支援事務,不支援外來鍵;支援表鎖,不支援行鎖;訪問速度快
檔案:
xxx.sdi: 儲存表結構資訊
xxx.MYD: 儲存資料
xxx.MYI: 儲存索引
Memory:儲存在記憶體中的,由於受到硬體問題、或斷電問題的影響,只能將這些表作為臨時表或快取使用。
記憶體存放;hash索引
檔案:
xxx.sdi: 儲存表結構資訊

選擇
應該根據應用系統的特點選擇合適的儲存引擎。對於複雜的應用系統,還可以根據實際情況選擇多種儲存引擎進行組合。
InnoDB:是Mysql的預設儲存引擎,支援事務、外來鍵。如果應用對事務的完整性有比較高的要求,在併發條件下要求資料的一致性,資料操作除了插入和查詢之外,還包含很多的更新、刪除操作,那麼InnoDB儲存引擎是比較合適的選擇。
MyISAM:如果應用是以讀操作和插入操作為主,只有很少的更新和刪除操作,並且對事務的完整性、併發性要求不是很高,如日誌相關 瀏覽記錄 活動軌跡
MEMORY:將所有資料儲存在記憶體中,訪問速度快,通常用於臨時表及快取。MEMORY的缺陷就是對錶的大小有限制,太大的表無法快取在記憶體中,而且無法保障資料的安全性。