相關資訊
本類常用軟件
-
福建農村信用社手機銀行客戶端下載下載量:584204
-
Windows優化大師下載量:416907
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農村信用社手機銀行客戶端下載下載量:365699
-
快播手機版下載量:325855
1、使用行級別鎖,避免表級別或頁級別鎖
盡量使用支持行級別鎖的存儲引擎,如InnoDB;只在讀操作顯著多于寫作的場景中(如數據倉庫類的應用)使用表級別鎖的存儲引擎,如MyISAM;。
2、降低熱巨鎖(hot gaint lock)出現的可能性以盡可能避免全局互斥量
臨界區(僅允許單一線程訪問的資源)會嚴重降低MySQL系統并發性;InnoDB緩沖池(buffer pool)、數據字典等都是常見的臨界區;幸運的是,新版本的InnoDB已經能夠較好的運行于多核處理器,支持使用innodb_buffer_pool_instances服務器變量建立多個緩沖池實例,每個緩沖池實例分別自我管理空閑列表、列表刷寫、LRU以及其它跟緩沖池相關的數據結構,并通過各自的互斥鎖進行保護。
3、并行運行多個I/O線程
通過innodb_io_capacity服務器變量等增加磁盤I/O線程的數量可以提高前端操作(如SELECT)的性能,不過,磁盤I/O線程的數量不應該超過磁盤的IOPS(7200RPM的單塊硬件的IOPS數量一般為100個左右)。
此外,異步I/O也可以在一定程度上提高系統的并發能力,在Linux系統上,可以通過將MySQL的服務器變量innodb_use_native_aio的值設定為ON設定InnoDB可以使用Linux的異步I/O子系統。
4、并行后端任務
默認情況下,MySQL的清寫(purge)操作(用于移除帶刪除標記的記錄)由InnoDB的主線程完成,這可以降低內部資源競爭發生的概率,進而增強MySQL服務伸縮能力。不過,隨著InnoDB內部各式各樣的競爭越來越多,這種設置帶來的性能優勢已幾乎不值一提,因此,生產環境中應該通過為innodb_purge_threads服務器變量設定為ON將主線程與清寫線程分開運行。
5、單線程復制模型中的SQL線程是一個熱區
在從服務器上并行運行多個SQL線程可有效提高MySQL從服務器性能,MySQL 5.6支持多線程復制(每庫一個復制線程);