PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Какъв е правилният начин за работа с резултати от поточно предаване на slick 3.0.0 и Postgresql?

„Правилният начин“ за стрийминг със Slick и Postgre включва три неща:

  1. Трябва да използвате db.stream()

  2. Трябва да деактивирате autoCommit в JDBC-драйвер. Един от начините е да накарате заявката да се изпълнява в транзакция, като добавите суфикс към .transactionally .

  3. Трябва да зададете fetchSize да бъде нещо различно от 0 или в противен случай postgres ще изпрати целия resultSet на клиента наведнъж.

Пример:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сумата на всички редове с панди с изключение на една

  2. Максимален (използваем) брой редове в Postgresql таблица

  3. Присъединете четири таблици, включващи LEFT JOIN без дубликати

  4. Не може да стартира PostgreSQL

  5. SQL:Предимства на ENUM спрямо връзка "един към много"?