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

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:153日期: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 是事務(wù)性數(shù)據(jù)庫的首選引擎,支持事務(wù)安全表(ACID),支持行鎖定和外鍵。MySQL5.5.5 之后,InnoDB 作為默認存儲引擎。InnoDB 主要特性有:

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

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

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

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

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

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

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 疏勒县| 资源县| 金堂县| 洪湖市| 阿荣旗| 广州市| 张家界市| 天柱县| 河南省| 丹寨县| 镶黄旗| 芷江| 佛冈县| 双鸭山市| 隆德县| 新邵县| 通道| 瓦房店市| 平昌县| 河北区| 萍乡市| 靖西县| 涞水县| 扬州市| 义马市| 钦州市| 平原县| 东乡族自治县| 九寨沟县| 斗六市| 托里县| 伊金霍洛旗| 区。| 都江堰市| 开封市| 凯里市| 开原市| 健康| 双桥区| 新邵县| 盐池县|