標籤:
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表起作用。
MySQL 儲存引擎