最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql(MyISAM)的讀寫互斥鎖問題的解決方法

 更新時間:2011年09月27日 00:32:11   作者:  
最近因?yàn)閿?shù)據(jù)庫讀的請求增加,出現(xiàn)了比較嚴(yán)重的讀寫鎖問題,由于主從分離,主服務(wù)器很快的執(zhí)行完了寫入的操作,但從庫由于有大量的select的查詢,會被這些來自主輔同步的update,insert嚴(yán)重堵塞,最后造成所有的Mysql從庫負(fù)載迅速上升。
由于沒辦法在短期內(nèi)增加讀的服務(wù)器,所以采取對Mysql進(jìn)行了一些配置,以犧牲數(shù)據(jù)實(shí)時性為代價,來換取所有服務(wù)器的生命安全。呵呵,具體相關(guān)調(diào)整以及思路如下:

MyISAM在讀操作占主導(dǎo)的情況下是很高效的??梢坏┏霈F(xiàn)大量的讀寫并發(fā),同InnoDB相比,MyISAM的效率就會直線下降,而且,MyISAM和 InnoDB的數(shù)據(jù)存儲方式也有顯著不同:通常,在MyISAM里,新數(shù)據(jù)會被附加到數(shù)據(jù)文件的結(jié)尾,可如果時常做一些UPDATE,DELETE操作之后,數(shù)據(jù)文件就不再是連續(xù)的,形象一點(diǎn)來說,就是數(shù)據(jù)文件里出現(xiàn)了很多洞洞,此時再插入新數(shù)據(jù)時,按缺省設(shè)置會先看這些洞洞的大小是否可以容納下新數(shù)據(jù),如果可以,則直接把新數(shù)據(jù)保存到洞洞里,反之,則把新數(shù)據(jù)保存到數(shù)據(jù)文件的結(jié)尾。之所以這樣做是為了減少數(shù)據(jù)文件的大小,降低文件碎片的產(chǎn)生。但 InnoDB里則不是這樣,在InnoDB里,由于主鍵是cluster的,所以,數(shù)據(jù)文件始終是按照主鍵排序的,如果使用自增ID做主鍵,則新數(shù)據(jù)始終是位于數(shù)據(jù)文件的結(jié)尾。

了解了這些基礎(chǔ)知識,下面說說MyISAM幾個容易忽視的配置選項(xiàng):

concurrent_insert:

通常來說,在MyISAM里讀寫操作是串行的,但當(dāng)對同一個表進(jìn)行查詢和插入操作時,為了降低鎖競爭的頻率,根據(jù)concurrent_insert的設(shè)置,MyISAM是可以并行處理查詢和插入的:

當(dāng)concurrent_insert=0時,不允許并發(fā)插入功能。

當(dāng)concurrent_insert=1時,允許對沒有洞洞的表使用并發(fā)插入,新數(shù)據(jù)位于數(shù)據(jù)文件結(jié)尾(缺省)。

當(dāng)concurrent_insert=2時,不管表有沒有洞洞,都允許在數(shù)據(jù)文件結(jié)尾并發(fā)插入。

這樣看來,把concurrent_insert設(shè)置為2是很劃算的,至于由此產(chǎn)生的文件碎片,可以定期使用OPTIMIZE TABLE語法優(yōu)化。

max_write_lock_count:

缺省情況下,寫操作的優(yōu)先級要高于讀操作的優(yōu)先級,即便是先發(fā)送的讀請求,后發(fā)送的寫請求,此時也會優(yōu)先處理寫請求,然后再處理讀請求。這就造成一個問題:一旦我發(fā)出若干個寫請求,就會堵塞所有的讀請求,直到寫請求全都處理完,才有機(jī)會處理讀請求。此時可以考慮使用max_write_lock_count:

max_write_lock_count=1

有了這樣的設(shè)置,當(dāng)系統(tǒng)處理一個寫操作后,就會暫停寫操作,給讀操作執(zhí)行的機(jī)會。

low-priority-updates:

我們還可以更干脆點(diǎn),直接降低寫操作的優(yōu)先級,給讀操作更高的優(yōu)先級。

low-priority-updates=1

綜合來看,concurrent_insert=2是絕對推薦的,至于max_write_lock_count=1和low-priority-updates=1,則視情況而定,如果可以降低寫操作的優(yōu)先級,則使用low-priority-updates=1,否則使用max_write_lock_count=1。

相關(guān)文章

  • MySQL幾點(diǎn)重要的性能指標(biāo)計算和優(yōu)化方法總結(jié)

    MySQL幾點(diǎn)重要的性能指標(biāo)計算和優(yōu)化方法總結(jié)

    下面小編就為大家?guī)硪黄狹ySQL幾點(diǎn)重要的性能指標(biāo)計算和優(yōu)化方法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • MySQL性能參數(shù)詳解之Max_connect_errors 使用介紹

    MySQL性能參數(shù)詳解之Max_connect_errors 使用介紹

    這篇文章主要介紹了MySQL性能參數(shù)詳解之Max_connect_errors 使用介紹,需要的朋友可以參考下
    2016-05-05
  • 更改MySQL數(shù)據(jù)庫的編碼為utf8mb4問題

    更改MySQL數(shù)據(jù)庫的編碼為utf8mb4問題

    這篇文章主要介紹了更改MySQL數(shù)據(jù)庫的編碼為utf8mb4問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • MySQL分區(qū)表的基本入門教程

    MySQL分區(qū)表的基本入門教程

    這篇文章主要給大家介紹了關(guān)于MySQL分區(qū)表的基本入門教程,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • MySQL 那些常見的錯誤設(shè)計規(guī)范,你都知道嗎

    MySQL 那些常見的錯誤設(shè)計規(guī)范,你都知道嗎

    今天來看一看 MySQL 設(shè)計規(guī)范中幾個常見的錯誤例子,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-07-07
  • MySQL 5.7解壓版安裝、卸載及亂碼問題的圖文解決方法

    MySQL 5.7解壓版安裝、卸載及亂碼問題的圖文解決方法

    這篇文章主要介紹了MySQL 5.7解壓版安裝、卸載及亂碼問題的圖文解決方法,本文分步驟給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2017-07-07
  • MySQL用戶與權(quán)限的管理詳解

    MySQL用戶與權(quán)限的管理詳解

    這篇文章主要介紹了MySQL用戶與權(quán)限的管理,詳細(xì)分析了mysql用戶密碼、權(quán)限設(shè)置與使用相關(guān)操作原理及注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • MySQL binlog 遠(yuǎn)程備份方法詳解

    MySQL binlog 遠(yuǎn)程備份方法詳解

    以前備份binlog時,都是先在本地進(jìn)行備份壓縮,然后發(fā)送到遠(yuǎn)程服務(wù)器中,但是這種備份方式非常的不安全,下面通過本文給大家介紹MySQL binlog 遠(yuǎn)程備份的方法,需要的朋友一起學(xué)習(xí)吧
    2016-05-05
  • MySQL基礎(chǔ)教程之事務(wù)異常情況

    MySQL基礎(chǔ)教程之事務(wù)異常情況

    事務(wù)(Transaction)是訪問和更新數(shù)據(jù)庫的程序執(zhí)行單元;事務(wù)中可能包含一個或多個sql語句,這些語句要么都執(zhí)行,要么都不執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于MySQL基礎(chǔ)教程之事務(wù)異常情況的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • MySQL的中文UTF8亂碼問題

    MySQL的中文UTF8亂碼問題

    MySQL從4.x版本開始支持Unicode,3.x只有l(wèi)atin1編碼。剛工作的時候就開始用MySQL了,用的php存取,網(wǎng)頁xxx.php是gb2312的編碼,存進(jìn)去的數(shù)據(jù)用php取出來是中文,用phpMyAdmin執(zhí)行select、update、dump都是中文,沒有亂碼問題。
    2010-05-05

最新評論

固始县| 房产| 临清市| 那曲县| 措美县| 德昌县| 张家港市| 临清市| 屏东县| 县级市| 桃源县| 平泉县| 南康市| 梁河县| 隆尧县| 余江县| 安仁县| 贵港市| 台中市| 天津市| 行唐县| 清原| 乌恰县| 鄂伦春自治旗| 本溪市| 香港 | 东光县| 博爱县| 辉县市| 九江县| 当阳市| 凉城县| 望都县| 比如县| 玉山县| 托克逊县| 且末县| 江津市| 甘孜| 封开县| 平凉市|