若何選擇適合的MySQL存儲引擎。本站提示廣大學習愛好者:(若何選擇適合的MySQL存儲引擎)文章只能為提供參考,不一定能成為您想要的結果。以下是若何選擇適合的MySQL存儲引擎正文
MySQL支撐數個存儲引擎作為對分歧表的類型的處置器。MySQL存儲引擎包含處置事務平安表的引擎和處置非事務平安表的引擎:
◆ MyISAM治理非事務表。它供給高速存儲和檢索,和全文搜刮才能。MyISAM在一切MySQL設置裝備擺設裡被支撐,它是默許的存儲引擎,除非你設置裝備擺設MySQL默許應用別的一個引擎。
◆ MEMORY存儲引擎供給“內存中”表。MERGE存儲引擎許可聚集將被處置異樣的MyISAM表作為一個零丁的表。就像MyISAM一樣,MEMORY和MERGE存儲引擎處置非事務表,這兩個引擎也都被默許包括在MySQL中。
正文:MEMORY存儲引擎正式地被肯定為HEAP引擎。
◆ InnoDB和BDB存儲引擎供給事務平安表。BDB被包括在為支撐它的操作體系宣布的MySQL-Max二進制分發版裡。InnoDB也默許被包含在所 有MySQL 5.1二進制分發版裡,你可以依照愛好經由過程設置裝備擺設MySQL來許可或制止任一引擎。
◆ EXAMPLE存儲引擎是一個“存根”引擎,它不做甚麼。你可以用這個引擎創立表,但沒稀有據被存儲於個中或從個中檢索。這個引擎的目標是辦事,在 MySQL源代碼中的一個例子,它演示解釋若何開端編寫新存儲引擎。異樣,它的重要興致是對開辟者。
◆ NDB Cluster是被MySQL Cluster用來完成朋分到多台盤算機上的表的存儲引擎。它在MySQL-Max 5.1二進制分發版裡供給。這個存儲引擎以後只被Linux, Solaris, 和Mac OS X 支撐。在將來的MySQL分發版中,我們想要添加其它平台對這個引擎的支撐,包含Windows。
◆ ARCHIVE存儲引擎被用來無索引地,異常小地籠罩存儲的年夜量數據。
◆ CSV存儲引擎把數據以逗號分隔的格局存儲在文本文件中。
◆ BLACKHOLE存儲引擎接收但不存儲數據,而且檢索老是前往一個空集。
◆ FEDERATED存儲引擎把數據存在長途數據庫中。在MySQL 5.1中,它只和MySQL一路任務,應用MySQL C Client API。在將來的分發版中,我們想要讓它應用其它驅動器或客戶端銜接辦法銜接到別的的數據源。
當你創立一個新表的時刻,你可以經由過程添加一個ENGINE 或TYPE 選項到CREATE TABLE語句來告知MySQL你要創立甚麼類型的表:
CREATE TABLE t (i INT) ENGINE = INNODB;
CREATE TABLE t (i INT) TYPE = MEMORY;
固然TYPE依然在MySQL 5.1中被支撐,如今ENGINE是首選的術語。
若何選擇最合適你的存儲引擎呢?
下述存儲引擎是最經常使用的:
◆ MyISAM:默許的MySQL插件式存儲引擎,它是在Web、數據倉儲和其他運用情況下最常應用的存儲引擎之一。留意,經由過程更改STORAGE_ENGINE設置裝備擺設變量,可以或許便利地更改MySQL辦事器的默許存儲引擎。
◆ InnoDB:用於事務處置運用法式,具有浩瀚特征,包含ACID事務支撐。
◆ BDB:可替換InnoDB的事務引擎,支撐COMMIT、ROLLBACK和其他事務特征。
◆ Memory:將一切數據保留在RAM中,在須要疾速查找援用和其他相似數據的情況下,可供給極快的拜訪。
◆ Merge:許可MySQL DBA或開辟人員將一系列同等的MyISAM表以邏輯方法組合在一路,並作為1個對象援用它們。關於諸如數據倉儲等VLDB情況非常合適。
◆ Archive:為年夜量很少援用的汗青、歸檔、或平安審計信息的存儲和檢索供給了完善的處理計劃。
◆ Federated:可以或許將多個分別的MySQL辦事器鏈接起來,從多個物理辦事器創立一個邏輯數據庫。非常合適於散布式情況或數據集市情況。
◆ Cluster/NDB:MySQL的簇式數據庫引擎,特別合適於具有高機能查找請求的運用法式,這類查找需求還請求具有最高的正常任務時光和可用性。
◆ Other:其他存儲引擎包含CSV(援用由逗號離隔的用作數據庫表的文件),Blackhole(用於暫時制止對數據庫的運用法式輸出),和Example引擎(可為疾速創立定制的插件式存儲引擎供給贊助)。
請記住,關於全部辦事器或計劃,你其實不必定要應用雷同的存儲引擎,你可認為計劃中的每一個表應用分歧的存儲引擎,這點很主要。