(2022.04.21 Thur)
數(shù)據(jù)庫中的數(shù)據(jù)通過不同的技術(shù)存儲在文件或內(nèi)存中召娜,不同技術(shù)的區(qū)別在于存儲機制、索引方式好港、鎖定水平以及其他方面的功能古拴。數(shù)據(jù)庫存儲引擎是DBMS的底層組件,用于數(shù)據(jù)的創(chuàng)建讀取更新刪除(CRUD)寿谴。多數(shù)的DBMS提供了訪問引擎的API,而免于用戶直接訪問DBMS的UI。
不同DBMS對引擎的支持不同膝擂。以MySQL為例虑啤,MySQL支持InnoDB,MyISAM架馋,ARCHIVE狞山,MEMORY等。
InnoDB
InnoDB的設(shè)計目標(biāo)是處理大容量數(shù)據(jù)時最大化性能叉寂,CPU利用率是基于磁盤的關(guān)系數(shù)據(jù)庫引擎中最高萍启;是一套置于MySQL后臺的完整數(shù)據(jù)庫系統(tǒng),有自己的緩沖池屏鳍,用于緩沖數(shù)據(jù)和索引勘纯。數(shù)據(jù)和索引存在表空間里,可包含多個文件钓瞭。作為對比MyISAM的表被放在單獨的文件中驳遵。InnoDB表的大小只受限于操作系統(tǒng)文件大小,一般2GB山涡。
事務(wù)transaction:訪問并可能操作各種[數(shù)據(jù)項]的一個數(shù)據(jù)庫操作序列堤结,這些操作要么全部執(zhí)行,要么全部不執(zhí)行,是一個不可分割的工作單位鸭丛。
ACID:原子性Atomicity竞穷,或稱不可分割性、一致性Consistency鳞溉、隔離性Isolation瘾带,又稱獨立性、持久性Durability穿挨。ACID是數(shù)據(jù)庫事務(wù)正確執(zhí)行的四個基本要素月弛。
特點:
- 提供事務(wù)處理,支持ACID
- 支持行鎖
- 提供一致性的不加鎖讀取科盛,能增加并發(fā)讀的用戶數(shù)量并提高性能帽衙,不會增加鎖的數(shù)量
MyISAM
特點:
- 查詢、插入速度快
- 不支持事務(wù)贞绵,每次查詢都是原子的
- 支持表級鎖厉萝,即每次操作都對整個表加鎖
- 單表最大支持
條記錄
- 單表最大建立64條索引
- 三個文件:索引文件、表結(jié)構(gòu)文件榨崩、數(shù)據(jù)文件
- 采用非聚集索引(Non-clustered)谴垫,索引文件的數(shù)據(jù)域存儲指向數(shù)據(jù)文件的指針