好程式設計師大資料培訓分享MySQL資料庫儲存引擎簡介
好程式設計師大資料培訓分享《MySQL 資料庫》儲存引擎簡介, 1 、簡介 MySQL 中的資料用各種不同的技術儲存在檔案 ( 或者記憶體 ) 中。每一種技術都使用不同的儲存機制、索引技巧、鎖定水平並且最終提供廣泛的不同的功能和能力。
透過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。例如,如果你在研究大量的臨時資料,你也許只需要將資料儲存在記憶體中而不是檔案中( 記憶體儲存引擎能夠在記憶體中儲存所有的表格資料 ) 。又或者,你也許需要一個支援事務處理的資料庫 ( 以確保事務處理不成功時資料的回退能力 ) 。
這些不同的技術以及配套的相關功能在 MySQL 中被稱作儲存引擎 ( 也稱作表型別 )
2.儲存引擎的分類
MySQL預設配置了許多不同的儲存引擎,可以預先設定或者在MySQL伺服器中啟用,我們可以根據對資料處理的需求,選擇不同的儲存引擎,從而最大限度的利用MySQL強大的功能。
在客戶端使用相關命令顯示所有儲存引擎:show engines;
這裡介紹一下常用的儲存引擎
1)innoDB
InnoDB是一個健壯的事務型儲存引擎,這種儲存引擎已經被很多網際網路公司使用,為使用者操作非常大的資料儲存提供了一個強大的解決方案。InnoDB就是作為預設的儲存引擎。InnoDB還引入了行級鎖定和外來鍵約束。
在以下場合下,使用InnoDB是最理想的選擇:
1.更新密集的表。InnoDB儲存引擎特別適合處理多重併發的更新請求。
2.事務。InnoDB儲存引擎是支援事務的標準MySQL儲存引擎。
3.自動災難恢復。與其它儲存引擎不同,InnoDB表能夠自動從災難中恢復。
4.外來鍵約束。MySQL支援外來鍵的儲存引擎只有InnoDB。
5.支援自動增加列AUTO_INCREMENT屬性。
一般來說,如果需要事務支援,並且有較高的併發讀取頻率,InnoDB是不錯的選擇。
2)MyISAM
MyISAM不支援事務,也不支援外來鍵,尤其是訪問速度快,對事務完整性沒有要求或者以SELECT、INSERT為主的應用基本都可以使用這個引擎來建立表。每個MyISAM在磁碟上儲存成3個檔案,其中檔名和表名都相同,但是副檔名分別為:
.frm(儲存表定義)
.MYD(MYData,儲存資料)
.MYI(MYIndex,儲存索引)
3)MEMORY
使用Memory儲存引擎的出發點是速度。為得到最快的響應時間,採用的邏輯儲存介質是系統記憶體。雖然在記憶體中儲存表資料確實會提供很高的效能,但當mysqld守護程式崩潰時,所有的Memory資料都會丟失。獲得速度的同時也帶來了一些缺陷。它要求儲存在Memory資料表裡的資料使用的是長度不變的格式,這意味著不能使用BLOB和TEXT這樣的長度可變的資料型別,VARCHAR是一種長度可變的型別,但因為它在MySQL內部當做長度固定不變的CHAR型別,所以可以使用。
一般在以下幾種情況下使用Memory儲存引擎:
1.目標資料較小,而且被非常頻繁地訪問。在記憶體中存放資料,所以會造成記憶體的使用,可以透過引數max_heap_table_size控制Memory表的大小,設定此引數,就可以限制Memory表的最大大小。
2.如果資料是臨時的,而且要求必須立即可用,那麼就可以存放在記憶體表中。
3.儲存在Memory表中的資料如果突然丟失,不會對應用服務產生實質的負面影響。
3.如何選擇合適的儲存引擎?
可以按照下列判斷來選擇
(1)是否需要支援事務;
(2)是否需要使用熱備;
(3)崩潰恢復:能否接受崩潰;
(4)是否需要外來鍵支援;
然後按照標準,選擇對應的儲存引擎即可。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2694629/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師大資料培訓分享之MySQL資料庫SQL簡介程式設計師大資料MySql資料庫
- 好程式設計師大資料培訓分享mysql資料型別程式設計師大資料MySql資料型別
- 好程式設計師大資料培訓分享之hive儲存過程程式設計師大資料Hive儲存過程
- 好程式設計師大資料培訓分享之《MySQL資料庫》常用函式整理程式設計師大資料MySql資料庫函式
- MySQL資料庫儲存引擎簡介MySql資料庫儲存引擎
- 好程式設計師大資料培訓分享MapReduce理解程式設計師大資料
- 好程式設計師大資料培訓分享大資料的應用程式設計師大資料
- 好程式設計師大資料培訓分享大資料還學嗎?程式設計師大資料
- 好程式設計師大資料培訓分享MySQL8.0新特性程式設計師大資料MySql
- 好程式設計師大資料培訓分享大資料的影響一程式設計師大資料
- 好程式設計師大資料培訓分享HDFS讀流程程式設計師大資料
- 好程式設計師大資料培訓分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料培訓分享大資料兩大核心技術程式設計師大資料
- 好程式設計師大資料培訓分享MySQL資料庫約束條件和自增長序列程式設計師大資料MySql資料庫
- 好程式設計師大資料培訓分享大資料就業方向有哪些?程式設計師大資料就業
- 好程式設計師大資料培訓分享大資料面試寶典三程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典四程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典六程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典一程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典二程式設計師大資料面試
- 好程式設計師大資料培訓分享Hadoop怎樣處理資料?程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享:Hadoop叢集同步程式設計師大資料Hadoop
- 好程式設計師Python培訓分享numpy簡介程式設計師Python
- 好程式設計師大資料培訓分享Spark技術總結程式設計師大資料Spark
- 好程式設計師大資料培訓分享Hadoop的shuffle過程程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Hadoop分散式叢集程式設計師大資料Hadoop分散式
- 好程式設計師大資料培訓分享Hadoop入門進階程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享演算法系列資料庫使用者管理程式設計師大資料演算法資料庫
- 好程式設計師大資料培訓分享之Ambari和ClouderaManager對比程式設計師大資料Cloud
- 好程式設計師大資料培訓分享HBase Filter過濾器概述程式設計師大資料Filter過濾器
- 好程式設計師大資料培訓分享如何區分Hive與HBase程式設計師大資料Hive
- 好程式設計師大資料培訓分享Hadoop技術優缺點程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Spark需要什麼基礎?程式設計師大資料Spark
- 好程式設計師大資料培訓分享settings和mapping的意義程式設計師大資料APP
- 好程式設計師大資料培訓分享怎樣進行大資料入門學習程式設計師大資料
- 好程式設計師大資料培訓簡述Hadoop常見問題程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享之hive常用內部函式程式設計師大資料Hive函式
- 好程式設計師大資料培訓分享Hive基礎知識講解程式設計師大資料Hive