主頁(yè) > 知識(shí)庫(kù) > MySQL 常見(jiàn)存儲(chǔ)引擎的優(yōu)劣

MySQL 常見(jiàn)存儲(chǔ)引擎的優(yōu)劣

熱門(mén)標(biāo)簽:大豐地圖標(biāo)注app 北京金倫外呼系統(tǒng) 催天下外呼系統(tǒng) 南太平洋地圖標(biāo)注 400電話變更申請(qǐng) html地圖標(biāo)注并導(dǎo)航 呂梁外呼系統(tǒng) 武漢電銷(xiāo)機(jī)器人電話 400電話辦理服務(wù)價(jià)格最實(shí)惠

查看所有存儲(chǔ)引擎

我們可以通過(guò) show engines 命令來(lái)看到我們的 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 存儲(chǔ)引擎

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

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

MyISAM 存儲(chǔ)引擎

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

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

MEMORY 存儲(chǔ)引擎

MEMORY 存儲(chǔ)引擎將表中的數(shù)據(jù)存儲(chǔ)到內(nèi)存中,為查詢(xún)和引用其他表數(shù)據(jù)提供快速訪問(wèn)。MEMORY 主要特性有:

  1. MEMORY 表的每個(gè)表可以有多達(dá) 32 個(gè)索引,每個(gè)索引 16 列,以及 500B 的最大鍵長(zhǎng)度。
  2. MEMORY 存儲(chǔ)引擎執(zhí)行 HASH 和 BTREE 索引。
  3. 可以在一個(gè) MEMORY 表中有非唯一鍵。
  4. MEMORY 表使用一個(gè)固定的記錄長(zhǎng)度格式。
  5. MEMORY 不支持 BLOG 或 TEXT 列。
  6. MEMORY 支持 AUTO_INCREMENT 列和對(duì)可包含 NULL 值的列的索引。
  7. MEMORY 表在所有客戶(hù)端之間共享(就像其他任何非 TEMPORARY 表)。
  8. MEMORY 表內(nèi)容被存在內(nèi)存中,內(nèi)存是 MEMORY 表和服務(wù)器在查詢(xún)處理時(shí)的空閑中創(chuàng)建的內(nèi)部表共享的。
  9. 當(dāng)不再需要 MEMORY 表的內(nèi)容時(shí),要釋放被 MEMORY 表使用的內(nèi)存,應(yīng)該執(zhí)行 DELETE FROM 或 TRUNCATE TABLE,或者刪除整個(gè)表(用 DROP TABLE)。

以上就是MySQL 常見(jiàn)存儲(chǔ)引擎的優(yōu)劣的詳細(xì)內(nèi)容,更多關(guān)于MySQL 存儲(chǔ)引擎的優(yōu)劣的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • SQL Server中的執(zhí)行引擎入門(mén) 圖解
  • 修改MySQL數(shù)據(jù)庫(kù)引擎為InnoDB的操作
  • 關(guān)于MySQL Memory存儲(chǔ)引擎的相關(guān)知識(shí)
  • 詳解mysql中的存儲(chǔ)引擎
  • MySQL 選擇合適的存儲(chǔ)引擎
  • 聊聊MySQL中的存儲(chǔ)引擎
  • MySQL創(chuàng)建數(shù)據(jù)表時(shí)設(shè)定引擎MyISAM/InnoDB操作
  • 簡(jiǎn)述MySQL InnoDB存儲(chǔ)引擎
  • 如何自己動(dòng)手寫(xiě)SQL執(zhí)行引擎

標(biāo)簽:徐州 龍巖 南充 自貢 西寧 迪慶 無(wú)錫 麗水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL 常見(jiàn)存儲(chǔ)引擎的優(yōu)劣》,本文關(guān)鍵詞  MySQL,常見(jiàn),存儲(chǔ),引擎,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL 常見(jiàn)存儲(chǔ)引擎的優(yōu)劣》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于MySQL 常見(jiàn)存儲(chǔ)引擎的優(yōu)劣的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章