Slick और Postgres के साथ स्ट्रीमिंग करने के "सही तरीके" में तीन चीज़ें शामिल हैं:
-
db.stream () का उपयोग करना चाहिए
-
autoCommit
को अक्षम करना होगा जेडीबीसी-चालक में। एक तरीका यह है कि.transactionally
. प्रत्यय लगाकर क्वेरी को लेन-देन में चलाया जाए । -
fetchSize
set सेट करना होगा 0 के अलावा कुछ और होना या फिर पोस्टग्रेज पूरे परिणाम को एक बार में क्लाइंट को सेट कर देगा।
उदा:
DB.stream(
find(0L, 0L)
.transactionally
.withStatementParameters(fetchSize = 1000)
).foreach(println)
उपयोगी लिंक्स:
https://github.com/slick/slick/issues/1038
https://github.com/slick/slick/issues/809