国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

淺談MySQL存儲引擎選擇 InnoDB與MyISAM的優缺點分析

2024-07-24 12:48:28
字體:
來源:轉載
供稿:網友
下面先讓我們回答一些問題:

◆你的數據庫有外鍵嗎?
◆你需要事務支持嗎?
◆你需要全文索引嗎?
◆你經常使用什么樣的查詢模式?
◆你的數據有多大?

思考上面這些問題可以讓你找到合適的方向,但那并不是絕對的。如果你需要事務處理或是外鍵,那么InnoDB 可能是比較好的方式。如果你需要全文索引,那么通常來說 MyISAM是好的選擇,因為這是系統內建的,然而,我們其實并不會經常地去測試兩百萬行記錄。所以,就算是慢一點,我們可以通過使用Sphinx從InnoDB中獲得全文索引。

數據的大小,是一個影響你選擇什么樣存儲引擎的重要因素,大尺寸的數據集趨向于選擇InnoDB方式,因為其支持事務處理和故障恢復。數據庫的在小決定了故障恢復的時間長短,InnoDB可以利用事務日志進行數據恢復,這會比較快。而MyISAM可能會需要幾個小時甚至幾天來干這些事,InnoDB只需要幾分鐘。

您操作數據庫表的習慣可能也會是一個對性能影響很大的因素。比如: COUNT() 在 MyISAM 表中會非常快,而在InnoDB 表下可能會很痛苦。而主鍵查詢則在InnoDB下會相當相當的快,但需要小心的是如果我們的主鍵太長了也會導致性能問題。大批的inserts 語句在MyISAM下會快一些,但是updates 在InnoDB 下會更快一些——尤其在并發量大的時候。

所以,到底你檢使用哪一個呢?根據經驗來看,如果是一些小型的應用或項目,那么MyISAM 也許會更適合。當然,在大型的環境下使用MyISAM 也會有很大成功的時候,但卻不總是這樣的。如果你正在計劃使用一個超大數據量的項目,而且需要事務處理或外鍵支持,那么你真的應該直接使用InnoDB方式。但需要記住InnoDB 的表需要更多的內存和存儲,轉換100GB 的MyISAM 表到InnoDB 表可能會讓你有非常壞的體驗。

MyISAM存儲引擎

MyISAM是 默認存儲引擎。它基于更老的ISAM代碼,但有很多有用的擴展。MyISAM存儲引擎的一些特征:

●所有數據值先存儲低字節。這使得數據機和操作系統分離。二進制輕便性的唯一要求是機器使用補碼(如最近20年的機器有的一樣)和IEEE浮點格式(在主流機器中也完全是主導的)。唯一不支持二進制兼容性的機器是嵌入式系統。這些系統有時使用特殊的處理器。
●先存儲數據低字節并不嚴重地影響速度;數據行中的字節一般是未聯合的,從一個方向讀未聯合的字節并不比從反向讀更占用更多的資源。服務器上的獲取列值的代碼與其它代碼相比并不顯得時間緊。
●大文件(達63位文件長度)在支持大文件的文件系統和操作系統上被支持。
●當把刪除和更新及插入混合的時候,動態尺寸的行更少碎片。這要通過合并相鄰被刪除的塊,以及若下一個塊被刪除,就擴展到下一塊來自動完成。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双柏县| 隆昌县| 青田县| 沧州市| 常宁市| 台湾省| 凌云县| 遂川县| 苏尼特右旗| 普宁市| 德阳市| 德清县| 阳东县| 二连浩特市| 揭西县| 定州市| 蓬莱市| 三门峡市| 台北县| 遂昌县| 旌德县| 榆树市| 湾仔区| 那坡县| 丰台区| 延安市| 朝阳区| 杂多县| 白朗县| 十堰市| 大厂| 达尔| 南昌市| 乐清市| 临猗县| 孙吴县| 玛沁县| 宝清县| 石柱| 措勤县| 洪江市|