甲骨文在2010年底發布了MySQL的改版,5.5版中有不少重大的更新,例如:將原本預設的資料表儲存引擎由MyISAM更改成InnoDB、提供更多的分區選項、對多處理器核心系統效能的改進、支援半同步複製功能(Semi-Synchronous Replication)、加強資料毀壞修復的能力等。

MySQL目前提供免費版本Community Edition及商用版本,商用版本還有分成標準版、企業版及專為電信營運商的版本Cluster Carrier Grade Edition。

商業版有售後服務之外,還多了一些功能如:監控程式、企業級備份等,其中Cluster Carrier Grade Edition更多了NDB儲存引擎及叢集管理員MySQL Cluster Manager,而這次我們測試的是免費版。

預設的資料表儲存引擎,在5.5版已更改為InnoDB

5.1版之前,MyISAM一直是預設的儲存引擎,雖然它有著快速、簡單的特性,卻不支援Transaction(交易)的特性(不可分割、一致、隔離、耐久,簡稱為ACID)、Foreign Key(外鍵)等功能,但InnoDB都有,在5.5版中MySQL正式將InnoDB更改為預設的儲存引擎。

InnoDB支援了Transaction的上述4種特性,它的特色是將數個SQL指令視為一個整體執行,只要其中一個指令錯誤,就會取消掉所有步驟,舉個例子,假設你正在提款機前操作某項交易,如果在過程中某個步驟發生錯誤,例如停電,則系統會取消掉整筆交易,而不是取消該步驟,這對於交易來說是一個很重要的安全機制;它同時支援Foreign Key,可以將數個資料表連結,而這最主要的功能就是確保資料的一致性;InnoDB也支援資料列鎖定(row level locking),如果有使用者正在操作一張資料表,那麼InnoDB會鎖定對方目前在存取的資料列,而非鎖定整個資料表,如此若別人存取同資料表的其他資料列就不會受影響。

MySQL在5.5版中更進一步加強了InnoDB儲存引擎的功能,例如改善資料毀壞修復,過去如果資料庫發生了資料損壞,可能要數小時的修復時間,現在只要幾分鐘就能完成。另外針對資料庫暫存區的改進,現在MySQL可以新增多個暫存區(Multiple Buffer Pool Instances)──Buffer Pool是記憶體中的暫存區塊,將資料放在這個暫存區可以增加存取的速度,不過如果同時有多個執行?對暫存區進行存取,就會造成傳輸的瓶頸,而MySQL 5.5版允許使用者可以開啟最多64個暫存區,以改善這個問題,進而增加存取性能,同時管理者也可以自由設定暫存區的大小。

分區功能加強,增進了存取的性能

一般資料庫若沒有分區功能,又想將資料分散儲存,它可能必須將資料庫或資料表移動分散到不同的磁碟,然後利用連結指向這些位置,以提升系統的速度。而分區(Partition)則是更進階的作法,它是將資料表中同個屬性的欄或列進行分割,在不同的地方儲存成單獨的資料表,例如:我們可以將某資料表中不常使用到的欄位分配到同一個分區,這樣可以減少搜尋資料表的時間;另外,在搜尋資料時,資料庫系統如果知道要搜尋的資料在那個分區,就可以直接到該分區找,這樣會比搜尋整個資料表快。

MySQL先前就有分區功能,在5.5版又有一些強化,例如:在5.1版中不支援對非整數類型例如Date(日期)分區,必須使用函數進行轉換,在5.5版中則可以對日期直接進行分區,而不需再透過函數,同時也加入了truncate partition指令。

以往要刪除分區裡的資料只能用drop partition指令,該指令可以刪除分區的資料但同時也會將分區刪除,如果資料庫系統管理員想刪除分區的某部份資料,但又想保留分區本身就會非常麻煩,現在有了truncate partition指令可以刪除分區資料,同時又保留分區本身,這對於管理員來說相當有幫助。

新增半同步複製機制

支援半同步複製也是新版才有的機制。在5.5版之前,MySQL只支援非同步複製,也就是說Master(主要資料庫)在使用者送來一個操作請求時,先將該操作處理完畢回覆給使用者,再將該記錄傳送給Slave(備份資料庫),缺點是兩套資料庫之間的內容會有時間差,如果主要資料庫發生資料毀損,而備份資料庫的資料還沒更新到與主資料庫資料一致的情形下,那麼就無法靠備用資料庫維持資料一致性。

而在5.5版中,MySQL提供了半同步複製機制,這個功能可以保證資料在主從伺服器同時傳入資料的情況下,將結果回傳給使用者,而所謂的半同步,是指它只保證資料已經傳到備份資料庫上,卻不保證資料在備份資料庫上執行完成,所以還是有可能會發生資料不同步的狀況發生。

MySQL 5.5版本已經推出且穩定運行了一段時間,而5.6版也即將推出,預計會加入全文檢索及支援No-SQL,會是一個重大更新。

利用官方免費的圖形化管理工具,使管理資料庫更有效率

MySQL的內建管理介面為文字命令模式的操作,因此資料庫管理員平時在維護資料庫時,要輸入許多SQL指令,如果其中一個指令輸入錯誤,就要重新再來相當麻煩,而MySQL本身也推出3套免費圖形化管理工具軟體,可以搭配使用,它們是資料庫管理工具MySQL Administrator、查詢工具MySQL Query Browser,以及資料庫轉移工具MySQL Migration Toolkit。

MySQL Administrator主要的功能是管理MySQL,你可以用它來查看MySQL的資訊、調整設定檔參數,例如設定字元的編碼方式,也能管理使用者,包括新增、刪除帳號或更改權限。

MySQL Query Browser的功能則是針對資料操作,像是新增、查詢資料等,或建立、刪除資料表及編輯欄位,同時你可以用它來編輯SQL指令,如果不想輸入一大堆的指令,MySQL Query Browser也提供了巨集,只要點選相關的按鈕,例如Select,再點選要查詢的資料表,它就會自動輸入SQL指令,算是方便的功能。而MySQL Migration Toolkit則可以幫助你將其他資料庫,如SQL Server、Orcale等移轉到MySQL,善用這些工具,就可以有效的管理資料庫。

 

建立資料表可同時定義分區

MySQ 5.5版加強了分區功能,使資料庫提升了存取的效能,我們這裡主要透過另一套圖形化管理工具phpMyAdmin定義資料表的分區。

 

預設的命令列模式管理介面

MySQL 5.5本身的管理工具為文字模式,為了方便管理,另外安裝了官方的圖形化管理工具MySQL Administrator。

 

利用MySQL Query Browser建立資料表

透過官方的圖形化管理工具MySQL Query Browser,可以看到MySQL 5.5版已將預設的儲存引擎改為InnoDB,但仍然可以依照需求,選擇其他資料表格式。

 


產品資訊
建議售價●社群版免費,標準版為每年每臺伺服器(4個處理器插槽以下)2,000美元 原廠●Oracle 電話●0800-672-253 網址●www.oracle.com 電話●0800-672-253 支援作業系統●Windows、Linux、FreeBSD、Mac OS X 處理器需求●x86處理器、Itanium處理器 支援儲存引擎種類●InnoDB、MyISAM、Memory、CSV、Archive

【註:規格與價格由廠商提供,因時有異動,正確資訊請洽廠商。】

熱門新聞

Advertisement