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

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


咨詢
建站咨詢
