DB가 분산되어 있을 때 한쪽에서 아이디 리스트를 구하고, 다른쪽 DB에서 아이디를 조건으로 또 다른 값을 구하려고 할 때 만약 아이디 리스트의 갯수가 엄청 많다면 (가령 3만개) 두번째 쿼리를 날릴때 고민이 됩니다. 하나씩 날리자니 쿼리를 3만번 호출해야하고, 그렇다고 3만개를 묶어서 하나의 스트링으로 in 조건으로 걸자니 메모리가 꽉 차서 수행을 할 수 없게 됩니다. 이럴때는 일정 갯수 단위로 (가령 1000개) 아이디를 잘라서 in 조건을 걸면 편리하게 수행할 수 있어요
# 엄청 많은 건수의 데이터 조회를 해야할 때...
index = 0
totalcount = len(idlist)
for i in idlist:
index += 1
id = i
if (idstr!=""): idstr += ","
idstr += str(id)
# 1000개씩 잘라서 수행한다.
if (index%1000 == 0 or index == totalcount) :
# 수행한다.
별 내용은 아니지만 이렇게 잘라서 수행하면 수행속도도 무척 빠르고 DB에도 부담을 주지 않게 됩니다.