站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        mysql分表思路

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理
        一張一億的訂單表,可以分成五張表,這樣每張表就只有兩千萬數(shù)據(jù),分擔(dān)了原來一張表的壓力,分表需要根據(jù)某個條件進行分,這里可以根據(jù)地區(qū)來分表,需要一個中間件來控制到底是去哪張表去找到自己想要的數(shù)據(jù)。
        中間件:根據(jù)主表的自增id作為中間件(什么樣的字段適合做中間件?要具備唯一性)
        怎么分發(fā)?主表插入之后返回一個id,根據(jù)這個id和表的數(shù)量進行取模,余數(shù)是幾就往哪張表中插入數(shù)據(jù)。
        注意:子表中的id要與主表的id保持一致
        以后只有插入操作會用到主表,修改,刪除,讀取,均不需要用到主表

        相關(guān)學(xué)習(xí)推薦:PHP編程從入門到精通

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        redis消息隊列

        1,什么是消息隊列?
        消息傳播過程中保存消息的容器
        2,消息隊列產(chǎn)生的歷史原因

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        消息隊列的特點:先進先出
        把要執(zhí)行的sql語句先保存在消息隊列中,然后依次按照順利異步插入的數(shù)據(jù)庫中
        應(yīng)用:新浪,把瞬間的評論先放入消息隊列,然后通過定時任務(wù)把消息隊列里面的sql語句依次插入到數(shù)據(jù)庫中

        修改

        操作子表進行修改

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        這樣修改有一個問題,主表和子表的數(shù)據(jù)會出現(xiàn)不一致,如何讓主表和字表數(shù)據(jù)一致?

        redis隊列保持主表子表數(shù)據(jù)一致

        修改完成后將要修改主表的數(shù)據(jù),存入redis隊列中

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        然后linux定時任務(wù)(contble)循環(huán)執(zhí)行redis隊列中的sql語句,同步更新主表的內(nèi)容

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        mysql分布式之分表(查,刪)

        查詢只需要查詢子表,不要查詢總表

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        刪除,先根據(jù)id找到要刪除的子表,然后刪除,然后往消息隊列中壓入一條刪除總表數(shù)據(jù)的sql語句
        然后執(zhí)行定時任務(wù)刪除總表數(shù)據(jù)

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        定時任務(wù):

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        mysql分布式之分庫

        分庫思路

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        分庫原理圖:

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        mysql分布式之分庫(增)

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理
        注意:操作完一個數(shù)據(jù)庫一定要把數(shù)據(jù)庫連接關(guān)閉,不然mysql會以為一直連接的同一個數(shù)據(jù)庫

        還是取模確定加載哪個配置文件連接哪個數(shù)據(jù)庫

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        mysql分布式之分庫(改)

        原理同新增

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        mysql分布式之分庫(查,刪)

        原理類似

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理
        刪除

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理
        執(zhí)行隊列

        mysql分布式之緩存(memcache)的應(yīng)用

        將數(shù)據(jù)放入緩存中,節(jié)省數(shù)據(jù)庫開銷,先去緩存中查,如果有直接取出,如果沒有,去數(shù)據(jù)庫查,然后存入緩存中

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        在編輯信息之后需要刪除緩存,不然一直讀取的是緩存的數(shù)據(jù)而不是修改過的數(shù)據(jù)

        PHP如何結(jié)合MySQL進行千萬級數(shù)據(jù)處理

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 国产精品jizz视频| 国产精品免费大片一区二区| 91亚洲国产成人久久精品网址| 亚洲第一极品精品无码久久| 国产精品成人99久久久久| 99re6在线精品免费观看| 亚洲精品少妇30p| 青青草97国产精品免费观看| 国产高清一级毛片精品| 91精品视频网站| 国产精品一区二区av| 亚洲国产精品碰碰| 精品欧美| 人精品影院 | 国产精品伦理久久久久久| 99精品久久精品| 久久久久99精品成人片欧美| 在线观看亚洲精品福利片| 亚洲精品亚洲人成在线观看下载| 久久99国产精品成人欧美| 国产人成精品综合欧美成人| 国产精品网址在线观看你懂的 | 亚洲第一精品在线视频| 国内精品在线视频| 国产成人精品福利网站在线| 99久久人妻无码精品系列| 精品成在人线AV无码免费看| 精品三级AV无码一区| 精品亚洲麻豆1区2区3区| 精品无人码麻豆乱码1区2区| 精品一区二区三区在线成人| 国产精品无圣光一区二区| 国产麻豆一精品一AV一免费| 久久久一本精品99久久精品88| 欧美精品欧美人与动人物牲交 | 国产精品 羞羞答答在线| 国产精品色视频ⅹxxx | 国产成人精品电影在线观看| CAOPORM国产精品视频免费| 91精品啪在线观看国产| 国产精品久久国产精麻豆99网站|