久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

MySQL 常見存儲引擎的優(yōu)劣

瀏覽:181日期:2023-10-02 12:38:31
目錄查看所有存儲引擎InnoDB 存儲引擎MyISAM 存儲引擎MEMORY 存儲引擎查看所有存儲引擎

我們可以通過 show engines 命令來看到我們的 mysql server 提供了哪些引擎:

show engines;+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| Engine | Support | Comment | Transactions | XA | Savepoints |+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES|| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO || MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO || BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO || MyISAM | YES | MyISAM storage engine | NO | NO | NO || CSV| YES | CSV storage engine | NO | NO | NO || ARCHIVE | YES | Archive storage engine | NO | NO | NO || PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO || FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+9 rows in set (0.00 sec)InnoDB 存儲引擎

InnoDB 是事務性數據庫的首選引擎,支持事務安全表(ACID),支持行鎖定和外鍵。MySQL5.5.5 之后,InnoDB 作為默認存儲引擎。InnoDB 主要特性有:

InnoDB 給 MySQL 提供了具有提交、回滾和崩潰恢復能力的事務安全(ACID 兼容)存儲引擎。InnoDB 鎖定在行級并且也在 SELECT 語句中提供一個類似 Oracle 的非鎖定讀。這些功能增加了多用戶部署和性能。在 SQL 查詢中,可以自由地將 InnoDB 類型的表與其他 MySQL 的表的類型混合起來,甚至在同一個查詢中也可以混合。 InnoDB 是為處理巨大數據量所設計的性能為重的,它的 CPU 效率可能是任何其他基于磁盤的關系數據庫引擎所不能匹敵的。 InnoDB 存儲引擎完全與 MySQL 服務器整合,InnoDB 存儲引擎在主內存中維持了自己的緩沖池來緩存數據和索引。InnoDB 將它的表和索引存在一個邏輯表空間中,表空間可以包含數個文件(或原始磁盤分區(qū))。這與 MyISAM 表不同,比如在 MyISAM 表中每個表被存在分離的文件中。InnoDB 表可以是任何尺寸,即使在文件尺寸被限制在 2GB 的操作系統(tǒng)上。 InnoDB 支持外鍵完整性約束(FOREIGN KEY)。存儲表中的數據時,每張表的存儲都按主鍵順序存放,如果沒有顯式在表定義時制定主鍵,InnoDB 會為每一行生成一個 6B 的 ROWID,并以此作為主鍵。 InnoDB 被用在眾多需要高性能的大型數據庫站點上。 InnoDB 不創(chuàng)建目錄,使用 InnoDB 時,MySQL 將在 MySQL 數據目錄下創(chuàng)建一個名為 ibdata1 的 10MB 大小的自動擴展數據文件,以及兩個名為 ib_logfile0 和 ib_logfile1 的 5MB 大小的日志文件。 MyISAM 存儲引擎

MyISAM 是基于 ISAM 的存儲引擎,并對其進行擴展。它是在 Web、數據存儲和其他應用環(huán)境下最常使用的存儲引擎之一。MyISAM 擁有較高的插入、查詢速度,但不支持事務。在 MySQL5.5.5 之前的版本中,MyISAM 是默認存儲引擎。MyISAM 主要特性有:

大文件(達 63 位文件長度)在支持大文件的文件系統(tǒng)和操作系統(tǒng)上被支持。 當把刪除、更新及插入操作混合使用的時候,動態(tài)尺寸的行產生更少碎片。這要通過合并相鄰被刪除的塊,以及若下一個塊被刪除,就擴展到下一塊來自動完成。 每個 MyISAM 表最大索引數是 64,這可以通過重新編譯來改變。每個索引最大的列數是 16 個。 最大的鍵長度是 1000B,這也可以通過編譯來改變。對于鍵長度超過 250B 的情況,一個超過 1024B 的鍵將被用上。 BLOB 和 TEXT 列可以被索引。 NULL 值被允許在索引的列中。這個值占每個鍵的 0-1 個字節(jié)。 所有數字鍵值以高字節(jié)優(yōu)先被存儲以允許一個更高的索引壓縮。 每表一個 AUTO_INCREMENT 列的內部處理。MyISAM 為 INSERT 和 UPDATE 操作自動更新這一列。這使得 AUTO_INCREMENT 列更快(至少 10%)。在序列項的值被刪除之后就不能再利用。 可以把數據文件和索引文件放在不同目錄。 每個字符列可以有不同的字符集。 有 VARCHAR 的表可以固定或動態(tài)記錄長度。 VARCHAR 和 CHAR 列可以多達 64KB。 使用 MyISAM 引擎創(chuàng)建數據庫,將產生 3 個文件。文件的名字以表的名字開始,擴展名代表了文件的類型:frm 文件存儲表定義,myd 代表數據文件,myi 代表索引文件。 MEMORY 存儲引擎

MEMORY 存儲引擎將表中的數據存儲到內存中,為查詢和引用其他表數據提供快速訪問。MEMORY 主要特性有:

MEMORY 表的每個表可以有多達 32 個索引,每個索引 16 列,以及 500B 的最大鍵長度。 MEMORY 存儲引擎執(zhí)行 HASH 和 BTREE 索引。 可以在一個 MEMORY 表中有非唯一鍵。 MEMORY 表使用一個固定的記錄長度格式。 MEMORY 不支持 BLOG 或 TEXT 列。 MEMORY 支持 AUTO_INCREMENT 列和對可包含 NULL 值的列的索引。 MEMORY 表在所有客戶端之間共享(就像其他任何非 TEMPORARY 表)。 MEMORY 表內容被存在內存中,內存是 MEMORY 表和服務器在查詢處理時的空閑中創(chuàng)建的內部表共享的。 當不再需要 MEMORY 表的內容時,要釋放被 MEMORY 表使用的內存,應該執(zhí)行 DELETE FROM 或 TRUNCATE TABLE,或者刪除整個表(用 DROP TABLE)。

以上就是MySQL 常見存儲引擎的優(yōu)劣的詳細內容,更多關于MySQL 存儲引擎的優(yōu)劣的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 堆龙德庆县| 兰西县| 灵武市| 象州县| 海安县| 横峰县| 安阳县| 长宁县| 平潭县| 石首市| 宁南县| 翁源县| 望江县| 达尔| 凤庆县| 景泰县| 西畴县| 集安市| 蕉岭县| 怀安县| 德兴市| 盐山县| 安义县| 东方市| 临汾市| 蓝田县| 巍山| 定兴县| 察隅县| 吉木萨尔县| 白水县| 吉隆县| 游戏| 达拉特旗| 林口县| 临安市| 四子王旗| 克拉玛依市| 开鲁县| 安塞县| 齐河县|