天天看點

[MySQL FAQ]系列 -- 新年新思想:MySQL也能并發導入資料

作/譯者:葉金榮(Email:

[MySQL FAQ]系列 -- 新年新思想:MySQL也能并發導入資料

),來源:http://imysql.cn,轉載請注明作/譯者和出處,并且不能用于商業用途,違者必究。

對MySQL的使用者而言,備受诟病的一個問題就是導入SQL備份檔案時不能并發,使得導入的效率很低。

今天,我們就來改變下思路,嘗試一下并發導入的方法,供大家參考。

1、問題分析

想要實作并發導入,其實沒那麼難,最簡單的思路就是:将完整的檔案切分成多份,然後并發導入即可。

在這裡,我自己的做法是這樣的:

上述方法中,如果資料表是 MyISAM 表,則并發導入沒有問題,但如果是 InnoDB 表,則會有表級鎖 AUOT-INC 導緻并發效率不高的麻煩,盡管如此,那也比單個檔案串行導入來的快一些。想要避免這個麻煩,就得采用 MySQL 5.1 版本了,因為在 5.1 中,改進了 AUTO-INC 的處理方式,規避了表級鎖,很大程度提高了并發效率。

2、實際測試

事先設定:最大并大導入線程是16個。

2.1 MySQL 5.0.67 版本

2.2 MySQL 5.1版本

更加詳細的測試就不再做了。

3、小結

從上面的測試結果可以看到,MySQL 5.1在AUTO-INC鎖方面的改進還是非常大的,對于想要提升并發性能,同時應用相對不是太複雜,并且不擔心會碰到bug的童鞋可以多多嘗試下。

由于衆所周知的緣故,相關的腳本就不釋出了,有需要的童鞋請加入MSN群讨論。

本文出自 “MySQL中文網”部落格 http://www.imysql.cn/