기본적으로 select *
인 쿼리가 있습니다. 개발시이 테이블은 단지 30000 행이지만, 생산에서는 훨씬 더 커집니다. 그래서이 쿼리를 늦게 사용하고 싶습니다. 왜 아래의 쿼리가 게으르지 않은가? Postgres 9.5.4.1을 사용하고 있습니다.clojure.java.jdbc 지연 쿼리
(do
(def pg-uri {:connection-uri "jdbc:postgresql://localhost/..."})
(def row (atom 0))
(take 10 (clojure.java.jdbc/query
pg-uri
["select * from mytable"]
{:fetch-size 10
:auto-commit false
:row-fn (fn [r] (swap! row inc))}))
@row) ;;=> 300000
어쩌면이 나이 S.O. : 기본 인수는 식별 기능입니다 질의 응답은 확실하지 않을 수 있습니다 : http://stackoverflow.com/questions/19728538/clojure-java-jdbc-query-large-resultset-lazily – Josh