新聞中心
我們?cè)凇?MySQL存儲(chǔ)引擎有哪些》一節(jié)中介紹了 MySQL 中幾種主要的存儲(chǔ)引擎以及它們的使用特性,本節(jié)將介紹如何根據(jù)不同的應(yīng)用場(chǎng)景去選擇合適的存儲(chǔ)引擎。
在使用 MySQL 數(shù)據(jù)庫(kù)管理系統(tǒng)時(shí),選擇一個(gè)合適的存儲(chǔ)引擎是一個(gè)非常復(fù)雜的問(wèn)題。不同的存儲(chǔ)引擎都有各自的特性、優(yōu)勢(shì)和使用的場(chǎng)合,正確的選擇存儲(chǔ)引擎可以提高應(yīng)用的使用效率。
為了能夠正確地選擇存儲(chǔ)引擎,必須掌握各種存儲(chǔ)引擎的特性。下面重點(diǎn)介紹幾種常用的存儲(chǔ)引擎,它們對(duì)各種特性的支持如下表所示。

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括阿拉善盟網(wǎng)站建設(shè)、阿拉善盟網(wǎng)站制作、阿拉善盟網(wǎng)頁(yè)制作以及阿拉善盟網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,阿拉善盟網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到阿拉善盟省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
| 特性 | MyISAM | InnoDB | MEMORY |
|---|---|---|---|
| 存儲(chǔ)限制 | 有 | 支持 | 有 |
| 事務(wù)安全 | 不支持 | 支持 | 不支持 |
| 鎖機(jī)制 | 表鎖 | 行鎖 | 表鎖 |
| B樹(shù)索引 | 支持 | 支持 | 支持 |
| 哈希索引 | 不支持 | 不支持 | 支持 |
| 全文索引 | 支持 | 不支持 | 不支持 |
| 集群索引 | 不支持 | 支持 | 不支持 |
| 數(shù)據(jù)緩存 | 支持 | 支持 | |
| 索引緩存 | 支持 | 支持 | 支持 |
| 數(shù)據(jù)可壓縮 | 支持 | 不支持 | 不支持 |
| 空間使用 | 低 | 高 | N/A |
| 內(nèi)存使用 | 低 | 高 | 中等 |
| 批量插入速度 | 高 | 低 | 高 |
| 支持外鍵 | 不支持 | 支持 | 不支持 |
表中主要介紹了 MyISAM、InnoDB 和 MEMORY 三種存儲(chǔ)引擎特性的對(duì)比。下面詳細(xì)介紹這 3 個(gè)存儲(chǔ)引擎的應(yīng)用場(chǎng)合并給出相應(yīng)的建議。
1) MyISAM
在 MySQL 5.1 版本及之前的版本,MyISAM 是默認(rèn)的存儲(chǔ)引擎。
MyISAM 存儲(chǔ)引擎不支持事務(wù)和外鍵,所以訪問(wèn)速度比較快。如果應(yīng)用主要以讀取和寫(xiě)入為主,只有少量的更新和刪除操作,并且對(duì)事務(wù)的完整性、并發(fā)性要求不是很高,那么選擇 MyISAM 存儲(chǔ)引擎是非常適合的。
MyISAM 是在 Web 數(shù)據(jù)倉(cāng)儲(chǔ)和其他應(yīng)用環(huán)境下最常使用的存儲(chǔ)引擎之一。
2) InnoDB
MySQL 5.5 版本之后默認(rèn)的事務(wù)型引擎修改為 InnoDB。
InnoDB 存儲(chǔ)引擎在事務(wù)上具有優(yōu)勢(shì),即支持具有提交、回滾和崩潰恢復(fù)能力的事務(wù)安裝,所以比 MyISAM 存儲(chǔ)引擎占用更多的磁盤(pán)空間。
如果應(yīng)用對(duì)事務(wù)的完整性有比較高的要求,在并發(fā)條件下要求數(shù)據(jù)的一致性,數(shù)據(jù)操作除了插入和查詢以外,還包括很多的更新、刪除操作,那么 InnoDB 存儲(chǔ)引擎是比較合適的選擇。
InnoDB 存儲(chǔ)引擎除了可以有效地降低由于刪除和更新導(dǎo)致的鎖定,還可以確保事務(wù)的完整提交(Commit)和回滾(Rollback),對(duì)于類似計(jì)費(fèi)系統(tǒng)或者財(cái)務(wù)系統(tǒng)等對(duì)數(shù)據(jù)準(zhǔn)確性要求比較高的系統(tǒng),InnoDB 都是合適的選擇。
3) MEMORY
MEMORY 存儲(chǔ)引擎將所有數(shù)據(jù)保存在 RAM 中,所以該存儲(chǔ)引擎的數(shù)據(jù)訪問(wèn)速度快,但是安全上沒(méi)有保障。
MEMORY 對(duì)表的大小有限制,太大的表無(wú)法緩存在內(nèi)存中。由于使用 MEMORY 存儲(chǔ)引擎沒(méi)有安全保障,所以要確保數(shù)據(jù)庫(kù)異常終止后表中的數(shù)據(jù)可以恢復(fù)。
如果應(yīng)用中涉及數(shù)據(jù)比較少,且需要進(jìn)行快速訪問(wèn),則適合使用 MEMORY 存儲(chǔ)引擎。
總結(jié)
不同應(yīng)用的特點(diǎn)是千差萬(wàn)別的,選擇適應(yīng)存儲(chǔ)引擎才是最佳方案也不是絕對(duì)的,這需要根據(jù)實(shí)際應(yīng)用進(jìn)行測(cè)試,從而得到最適合的結(jié)果。
分享標(biāo)題:創(chuàng)新互聯(lián)數(shù)據(jù)庫(kù)教程:如何選擇MySQL存儲(chǔ)引擎?
文章地址:http://www.5511xx.com/article/dhcdccp.html


咨詢
建站咨詢
