PHP MySQL欄位講解如何實現千萬級資料處理
##推薦(免費):PHP MySQL
#mysql分錶思路
## 一張一億的訂單表,可以分成五張表,這樣每張表就只有兩千萬數據,分擔了原來一張表的壓力,分錶需要根據某個條件進行分,這裡可以根據地區來分錶,需要一個中間件來控製到底是去哪張表去找到自己想要的資料。 中間件:依照主表的自增id作為中介軟體(什麼樣的欄位適合做中間件?要具備唯一性) 怎麼分發?主表插入之後回傳一個id,根據這個id和表的數量進行取模,餘數是幾就往哪張表中插入資料。
注意:子表中的id要與主表的id保持一致以後只有插入操作會用到主表,修改,刪除,讀取,均不需要用到主表
redis訊息佇列1,什麼是訊息佇列?
在訊息傳播過程中保存訊息的容器2,訊息佇列產生的歷史原因
訊息佇列的特性:先進先出
把要執行的sql語句先保存在訊息佇列中,然後依序依照順利非同步插入的資料庫中應用:新浪,把瞬間的註解先放入訊息佇列,然後透過定時任務把訊息佇列裡面的sql語句依序插入到資料庫中
修改
運算子表進行修改 這樣修改有一個問題,主表和子表的資料會出現不一致,如何讓主表和字表資料一致?redis佇列保持主表子表資料一致
已修改完成後將要修改主表的數據,存入redis佇列中然後linux定時任務(contble)循環執行redis佇列中的sql語句,同步更新主表的內容
mysql分佈式之分庫(增)
##注意:操作完一個資料庫一定要把資料庫連線關閉,不然mysql會以為一直連線的同一個資料庫
mysql分散式之分庫(改)
原理同新增mysql分散式之分庫(查,刪除)
原理類似刪除
執行佇列
mysql分散式之緩存(memcache)的應用程式
將資料放入快取中,節省資料庫開銷,先去緩存中查,如果有直接取出,如果沒有,去資料庫查,然後存入緩存中 #在編輯資訊之後需要刪除緩存,不然一直讀取的是快取的資料而不是修改過的資料以上是PHP結合MySQL完成千萬資料處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!