mysql常見儲存引擎有:myisam、innodb和memory
myisam的特點:儲存表分為三個檔案frm(表結構)、myd(表資料)、myi(表索引),所佔空間小,速度快,不支援事務和行級鎖。
innodb特點:所有的表都儲存在同乙個資料檔案(表空間)中,支援事務和行級鎖yiyi及外來鍵,但是載入資料速度慢。
memory的特點:直接在記憶體中建立表,資料儲存在記憶體中。
innodb與myisam的區別:
1.儲存結構:myisam儲存表分為三個檔案frm(表結構)、myd(表資料)、myi(表索引),而innodb所有資料儲存在乙個表空間中(可以是乙個檔案也可以使多個)。
2.事務支援:myisam不支援事務,而innodb支援事務,具有事務、回滾和恢復的事務安全。
3.外來鍵和主鍵:myisam不支援外來鍵,而innodb支援外來鍵。myisam允許沒有主鍵,但是innodb必須有主鍵,若未指定主鍵,會自動生成長度為6位元組的主鍵。
4.鎖:myisam只支援表級鎖,而innodb支援行級鎖,具有比較好的併發效能,但是行級鎖只有在where 子句是對主鍵篩選才生效,非主鍵where會鎖全表
5.索引:myisam使用b+樹作為索引結構,葉節點儲存的是儲存資料的位址,主索引key值唯一,副主索引key可以重複,二者在結構上相同。innodb也是用b+樹作為索引結構,資料表本身就是按照b+樹組織,葉節點key值為資料記錄的主鍵,data域為完整的資料記錄,輔助索引data域儲存的是資料記錄的主鍵
mysql資料庫索引:
建立索引的方法:
建立標的時候建立:
create teble t{
index index_name(colum_name);
直接建立:
create idnex index_name on table_name (colum_name)
修改表結構方式:
alter table table_name add index index_name (colum_name)
索引型別:
普通索引:沒有任何限制
唯一索引:key值必須唯一,但是允許為null
主鍵索引:key值必須唯一,且不允許為null
組合索引:多個欄位的組合作為索引的key值,遵循最左原則,範圍查詢及其右邊所有列均布使用索引
聚集索引和非聚集索引:
聚集索引:資料庫表中資料的物理順序與索引的順序相同。一張資料表只有乙個聚集索引。對於聚集索引,使用自增主鍵作為索引比使用uuid更加高效。原因是,使用自增主鍵,主鍵的大小與插入的順序是一致的,從而使得索引的葉子節點的順序與資料寫入順序一致,而使用uuid作為主鍵時,主鍵是無序的,innodb需要對主鍵的物理順序進行排序,增加了io開銷。
mysql儲存引擎 mysql儲存引擎簡介
精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...
mysql個儲存引擎 MySQL儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...
mysql儲存引擎模式 mysql儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 一 儲存引擎 儲存引擎 其實就是指定 表 如何儲存資料,如何為儲存的資料 建立索引以及 如何更新,查...