我有一個表字符串中的主鍵像12a4...
c3af...
。我想處理這些並行:將十六進制索引拆分爲n個
process_them(1,4) on machine 1
process_them(2,4) on machine 2
process_them(3,4) on machine 3
process_them(4,4) on machine 4
做上述必須選擇所有行表中,沒有機之間相互協調。我可以想出最好的辦法是將它們分成16所示:
select * from table where id like '1%'
...
select * from table where id like 'e%'
select * from table where id like 'f%'
是否有更好的想法,讓我更喜歡分裂1/2,1/4,1/8,1/16, 1/32等行總數?
注意:我這樣做是爲了每晚處理用戶數據並向他們發送通知。我沒有編輯數據庫本身的任何內容。我們需要一次處理數千個用戶,因爲它不會以這種方式高效地進行細分。
如果機器有一個遞增的系統ID,他們可以在LIMIT子句中使用它。但這可能被認爲是「協調」。恕我直言,以達到比你建議他們需要了解的環境更好的東西。 – mabi
我認爲分佈式數據庫是最好的解決方案。 – Suleman