歡迎光臨
每天分享高質量文章

MySQL 儲存引擎


MySQL簡介:


是一個關係型資料庫管理系統,由瑞典MySQL AB公司開發,目前屬於Oracle公司。


MySQL是一種關聯資料庫管理系統,關聯資料庫將資料儲存在不同的表中,而不是將所有資料放在一個大倉庫內,這樣就增加了速度並提高了靈活性。


由於其體積小、速度快、總體擁有成本低,尤其是開放原始碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。


與其他的大型資料庫例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規模小、功能有限(MySQL Cluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。


儲存引擎:


MyISAM

Mysql5.5之前的預設資料庫引擎,最為常用。擁有較高的插入,查詢速度,但不支持事務


InnoDB

事務型資料庫的首選引擎,支持ACID事務,支持行級鎖定, MySQL 5.5起成為預設資料庫引擎


BDB

源自Berkeley DB,事務型資料庫的另一種選擇,支持COMMIT和ROLLBACK等其他事務特性


Memory

所有資料置於記憶體的儲存引擎,擁有極高的插入,更新和查詢效率。但是會占用和資料量成正比的記憶體空間。並且其內容會在Mysql重新啟動時丟失


Merge

將一定數量的MyISAM表聯合而成一個整體,在超大規模資料儲存時很有用


Archive

非常適合儲存大量的獨立的,作為歷史記錄的資料。因為它們不經常被讀取。Archive擁有高效的插入速度,但其對查詢的支持相對較差

Federated將不同的Mysql服務器聯合起來,邏輯上組成一個完整的資料庫。非常適合分佈式應用


Cluster/NDB

高冗餘的儲存引擎,用多台資料機器聯合提供服務以提高整體性能和安全性。適合資料量大,安全和性能要求高的應用


CSV

邏輯上由逗號分割資料的儲存引擎。它會在資料庫子目錄里為每個資料表創建一個.CSV檔案。這是一種普通文本檔案,每個資料行占用一個文本行。CSV儲存引擎不支持索引。


BlackHole

黑洞引擎,寫入的任何資料都會消失,一般用於記錄binlog做複製的中繼


EXAMPLE

儲存引擎是一個不做任何事情的存根引擎。它的目的是作為MySQL原始碼中的一個例子,用來演示如何開始編寫一個新儲存引擎。同樣,它的主要興趣是對開發者。EXAMPLE儲存引擎不支持編索引。


另外,Mysql的儲存引擎接口定義良好。有興趣的開發者可以通過閱讀文件編寫自己的儲存引擎。


從理論上講,完全可以為資料表裡的每個欄位分別建一個索引,但MySQL把同一個資料表裡的索引總數限製為16個。



如何選擇 mysql 的儲存引擎:


1、myisam 儲存:如果對事務要求不高,同時是以查詢和添加為主的,我們考慮此引擎。(比如:bbs的發帖表、回覆表)

2、innodb 儲存:對事務要求高,儲存的資料都是重覆資料,我們建議使用此引擎。(比如:訂單表、賬號表)

3、memory 儲存:比如我們的資料變化頻繁,不需要入庫,同時又頻繁的查詢和修改,我們考慮使用此引擎。

optimize table 的作用:


當您的庫中刪除了大量的資料後,您可能會發現資料檔案尺寸並沒有減小。這是因為刪除操作後在資料檔案中留下碎片所致。


提供了資料表優化的功能,可以去除刪除操作後留下的資料檔案碎片,減小檔案尺寸,加快未來的讀寫操作。您只要在做完批量刪除,或定期(如 每一兩個月)進行一次資料表優化操作即可。


OPTIMIZE TABLE只對MyISAM, BDB和InnoDB表起作用。


作者:json傑

鏈接:http://www.cnblogs.com/jsonbloghome/p/4452014.html

赞(0)

分享創造快樂