程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL之--(二)存儲引擎

MySQL之--(二)存儲引擎

編輯:MySQL綜合教程

MySQL之--(二)存儲引擎   在mysql中的數據用各種不同的技術存儲在文件或者內存中。這些技術都是用了不同的存儲機制、索引技巧、鎖定水平,最終給用戶提供不同的選擇。這些不同的技術以及配套的相關功能在mysql中被稱為存儲引擎(或者表類型)。       在mysql中配置有許多不同的存儲引擎,用戶可以靈活的選擇適用於服務器、數據庫和表格的存儲引擎,以便獲得最大的性能和最大的靈活性。這也是mysql不同於其他大型數據庫以及mysql為何如此受歡迎的主要因素。一些大型的數據庫僅采用了一種存儲引擎,以一種尺碼滿足所有需求也就意味著會犧牲一些性能。
      在命令行中可以通過命令顯示其支持的存儲引擎:      show engines;     在mysql中支持的存儲引擎主要有MyISAM、CSV、MRG_MYISAM、BLACKHOLE、InnoDB、MEMORY、ARCHIVE…  www.2cto.com  
  (1)MyISAM: Mysql的默認數據庫,最為常用。擁有較高的插入,查詢速度,但不支持事務 .frm: 存儲表結構 .myd: 存儲數據,MYData的縮寫 .myi: 存儲索引,MYIndex的縮寫 (2)Inn0DB :事務型數據庫的首選引擎,支持ACID事務,支持行級鎖定 (3)BDB:源自Berkeley DB,事務型數據庫的另一種選擇,支持COMMIT和ROLLBACK等其他事務特性 (4)Memory :所有數據置於內存的存儲引擎,擁有極高的插入,更新和查詢效率。但是會占用和數據量成正比的內存空間。並且其內容會在Mysql重新啟動時丟失 (5)Merge:將一定數量的MyISAM表聯合而成一個整體,在超大規模數據存儲時很有用
  (6)Archive :非常適合存儲大量的獨立的,作為歷史記錄的數據。因為它們不經常被讀取。Archive擁有高效的插入速度,但其對查詢的支持相對較差 (7)Federated:將不同的Mysql服務器聯合起來,邏輯上組成一個完整的數據庫。非常適合分布式應用 Cluster/NDB :高冗余的存儲引擎,用多台數據機器聯合提供服務以提高整體性能和安全性。適合數據量大,安全和性能要求高的應用 (8)CSV:邏輯上由逗號分割數據的存儲引擎。它會在數據庫子目錄裡為每個數據表創建一個.CSV文件。這是一種普通文本文件,每個數據行占用一個文本行。CSV存儲引擎不支持索引。 (9)BlackHole:黑洞引擎,寫入的任何數據都會消失,一般用於記錄binlog做復制的中繼   www.2cto.com       每種存儲引擎都有各自的優勢,不能籠統的說誰的性能更好,只有合適不合適。 (1)MyISAM存儲引擎:主要用於管理非事物表,它提供了高速的存儲與檢索,以及全文搜索能力。該存儲引擎插入數據快,但是空間和內存的使用效率較低。如果表主要適用於插入新紀錄和讀出記錄,那麼選擇MyISAM存儲引擎可以實現處理的高效率。 (2)InnoDB存儲引擎:它主要用於事務處理應用程序,支持外鍵,同時還支持奔潰修復能力和並發控制。如果對事物的完整性要求比較高,要求實現並發通知,那麼選擇InnoDB存儲引擎比較有優勢。如果需要頻繁的進行更新、刪除操作,也可以選擇該存儲引擎,因為該存儲引擎可以實現事物的提交和回滾。 (3)Memory存儲引擎:Memory存儲引擎提供“內存中”表,該存儲引擎的所有數據都存儲在內存中,數據的處理速度很快但是安全性不高。     作者 陳慶霆

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved