我有以下SQL:如何在每個查詢中使用限制不同的SQL查詢結果?
SELECT id, url
FROM link
WHERE visited = false
ORDER BY id
LIMIT 500;
- * 500僅僅是一個例子
我正在做的WebCrawler,並有一個帶有鏈接的表。這個SQL返回要訪問的鏈接,但不是所有的鏈接,只有限制條款中定義的數量。
我將使用線程,如果第一個執行此查詢,它將獲得前500個鏈接,如果第二個線程執行相同的查詢,它將獲得下一個500個鏈接。換句話說,首先獲得鏈接1到500,第二個線程獲得501到1000,第三個線程獲得1001到1500等等。
MAYBE它不需要使用線程,但使用不同的計算機運行相同的應用程序。我不知道是否需要在表中創建一個字段來設置該行被另一個線程/應用程序使用,或者我只能使用SQL/DBMS來完成此操作。我正在使用PostgreSQL。
換句話說,再次,我將需要鎖定一個諮詢行不會出現在另一個查詢中。
偏移或領域,什麼是更好的?另外一個解 – 2011-05-12 20:43:27