MySQL5.5相對(duì)于5.1的改進(jìn)

Time:2021/05/19 11:58:56   Click:

最近在選型數據庫,用5.5還(hái)是5.1沒(méi)有太多的想法。主要是針對(duì)與互聯網大并發(fā)、分區、實時(shí)的要求。稍微了解了一下,他們之間的區别。由于5.5是針對(duì)于互聯網升級的。以下文檔說(shuō)明:


1. 默認存儲引擎更改爲InnoDB

InnoDB作爲成(chéng)熟、高效的事(shì)務引擎,目前已經(jīng)廣泛使用,但MySQL5.1之前的版本默認引擎均爲MyISAM,此次MySQL5.5終于 做到與時(shí)俱進(jìn),將(jiāng)默認數據庫存儲引擎改爲InnoDB,并且引進(jìn)了Innodb plugin 1.0.7。此次更新對(duì)數據庫的好(hǎo)處是顯而易見的:InnoDB的數據恢複時(shí)間從過(guò)去的一個甚至幾個小時(shí),縮短到幾分鍾(InnoDB plugin 1.0.7,InnoDB plugin 1.1, 恢複時(shí)采用紅-黑樹)。InnoDB Plugin 支持數據壓縮存儲,節約存儲,提高内存命中率,并且支持adaptive flush checkpoint, 可以在某些場合避免數據庫出現突發(fā)性能(néng)瓶頸。


Multi Rollback Segments: 原來InnoDB隻有一個Segment,同時(shí)隻支持1023的并發(fā)。現已擴充到128個Segments,從而解決了高并發(fā)的限制。


2. 多核性能(néng)提升

Metadata Locking (MDL) Framework替換LOCK_open mutex (lock),使得MySQL5.1及過(guò)去版本在多核心處理器上的性能(néng)瓶頸得到解決,官方表示將(jiāng)繼續增強對(duì)MySQL多處理器支持,直至MySQL性能(néng) “不受處理器數量的限制”


3. 複制功能(néng)(Replication)加強

MySQL複制特性是互聯網公司應用非常廣泛的特性,作爲MySQL最實用最簡單的擴展方式,過(guò)去的異步複制方式已經(jīng)有些不上形勢,對(duì)某些用戶 來說(shuō)“異步複制”意味著(zhe)極端情況下的數據風險,MySQL5.5將(jiāng)首次支持半同步(semi-sync replication)在MySQL的高可用方案中將(jiāng)産生更多更加可靠的方案。另外Slave fsync tunning;Relay log corruption recovery和Replication Heartbeat也將(jiāng)實現


4. 增強表分區功能(néng)

MySQL 5.5的分區對(duì)用戶絕對(duì)是個好(hǎo)消息,更易于使用的增強功能(néng),以及TRUNCATE PARTITION命令都(dōu)可以爲DBA節省大量的時(shí)間,有時(shí)對(duì)最終用戶亦如此:

1) 非整數列分區:任何使用過(guò)MySQL分區的人應該都(dōu)遇到過(guò)不少問題,特别是面(miàn)對(duì)非整數列分區時(shí),MySQL 5.1隻能(néng)處理整數列分區,如果你想在日期或字符串列上進(jìn)行分區,你不得不使用函數對(duì)其進(jìn)行轉換。很麻煩,而MySQL 5.5中新增了兩(liǎng)類分區方法,RANG和LIST分區法,同時(shí)在新的函數中增加了一個COLUMNS關鍵詞。在MySQL 5.1中使用分區另一個讓人頭痛的問題是date類型(即日期列),你不能(néng)直接使用它們,必須使用YEAR或TO_DAYS轉換這(zhè)些列,但在MySQL 5.5中情況發(fā)生了很大的變化,現在在日期列上可以直接分區,并且方法也很簡單;

2) 多列分區:COLUMNS關鍵字現在允許字符串和日期列作爲分區定義列,同時(shí)還(hái)允許使用多個列定義一個分區;

3) 可用性增強:truncate分區。分區最吸引人的一個功能(néng)是瞬間移除大量記錄的能(néng)力,DBA都(dōu)喜歡將(jiāng)曆史記錄存儲到按日期分區的分區表中,這(zhè)樣(yàng)可以定期 删除過(guò)時(shí)的曆史數據。 但當你需要移除分區中的部分數據時(shí),事(shì)情就(jiù)不是那麼(me)簡單了,删除分區沒(méi)有問題,但如果是清空分區,就(jiù)很頭痛了,要移除分區中的所有 數據,但需要保留分區本身,你可以:使用DELETE語句,但我們知道(dào)DELETE語句的性能(néng)都(dōu)很差。使用DROP PARTITION語句,緊跟著(zhe)一個EORGANIZE PARTITIONS語句重新創建分區,但這(zhè)樣(yàng)做比前一個方法的成(chéng)本要高出許多。MySQL 5.5引入了TRUNCATE PARTITION,它和DROP PARTITION語句有些類似,但它保留了分區本身,也就(jiù)是說(shuō)分區還(hái)可以重複利用。TRUNCATE PARTITION應該是DBA工具箱中的必備工具;

4) 更多微調功能(néng):TO_SECONDS:分區增強包有一個新的函數處理DATE和DATETIME列,使用TO_SECONDS函數,你可以將(jiāng)日期/時(shí)間列轉換成(chéng)自0年以來的秒數,如果你想使用小于1天的間隔進(jìn)行分區,那麼(me)這(zhè)個函數就(jiù)可以幫到你。


5. Insert Buffering 

如果在buffer pool中沒(méi)找到數據,那麼(me)直接buffer起(qǐ)來,避免額外的IO;Delete & Purge Buffering 跟插入一樣(yàng),如果buffer pool中沒(méi)有命中,先buffer起(qǐ)來,避免額外的IO。


6. Support for Native AIO on Linux

以上的特性在MySQL 5.5的社區版當中都(dōu)將(jiāng)包括,在MySQL企業版當中,除以上更新之外,Oracle還(hái)加強了更多實用的企業級功能(néng),包括:

a. 實現在線物理熱備

MySQL 企業版將(jiāng)包含Innodb Hotbackup(這(zhè)也許是MySQL和InnDB多年之後(hòu)重新聚首的新亮點),從而一舉解決過(guò)去MySQL無法進(jìn)行可靠的在線實時(shí)物理備份的問題, InnoDB Hot Backup 不需要你關閉你的服務器也不需要加任何鎖或影響其它普通的數據操作,這(zhè)對(duì)MySQL DBA來說(shuō)應該是一個不錯的消息。

b. MySQL Enterprise Monitor 2.2 & Oracle Enterprise Monitor

是的,你沒(méi)有看錯,MySQL將(jiāng)可以被(bèi)Oracle Enterprise Monitor監控,這(zhè)是一個實現起(qǐ)來并不複雜,但在過(guò)去絕無可能(néng)的變化。并且MySQL企業版監控器(MySQL Enterprise Monitor)得到了更大的加強,版本更新至2.

c. 對(duì)MySQL服務器資源占用降低到可以忽略的地步,集成(chéng)了監控,報警,SQL語句分析和給出優化建 議,MySQL的一些開(kāi)源監控方案相比之下顯得過(guò)于簡陋,對(duì)企業客戶來說(shuō),MySQL變得更加可靠。

d. MySQL Workbench 過(guò)去MySQL的圖形界面(miàn)工具做的實在是令人難以恭維,當然這(zhè)也給衆多MySQL管理工具提供了市場空間,現在Oracle打算將(jiāng)MySQL做 得比SQL-Server更加簡單易用,MySQL Workbench是一款專爲MySQL設計的ER/數據庫建模工具,可以用來設計和創建新的數據庫圖示,建立數據庫文檔,以及進(jìn)行複雜的MySQL 遷移等操作,因此内置workbench將(jiāng)使MySQL使用起(qǐ)來更簡便高效。

e. 關于未來的重要提醒:Oracle的管理工具,MySQL也將(jiāng)能(néng)夠使用,當然MySQL 5.5我們還(hái)沒(méi)看到這(zhè)個變化,但變化已經(jīng)在時(shí)間表上,MySQL社區版也能(néng)夠被(bèi)Oracle管理工具管理,前提你得是Oracle數據庫的用戶。


TAG
TOP

錦江區聚格樂享網絡工作室@2012 版權所有
蜀ICP備12016524号-2

立即咨詢
成(chéng)都(dōu)網站建設,成(chéng)都(dōu)做網站,錦江區聚格樂享網絡工作室
40f13d50b73e104f832ed1b719ae6935