タグ

postgreSQLとjavaに関するslay-tのブックマーク (2)

  • 100万件ぐらいのレコードを扱ったらOOMEが出た話。 - 谷本 心 in せろ部屋

    要約 技術的な話だけ教えて、という方のために先に結論だけ書いておきますと、PostgreSQLはクエリを実行した時点で全レコードの情報を一気に読んできてヒープを埋めてしまう場合がある、ということ話です。 たとえば、ResultSet#nextメソッドを使いながら処理を回すようなコードを書いて、少ないヒープでも処理できるようにするのは常套手段だと思いますが、そういうコードを書いていても一気にヒープを消費してしまうことがあるのです。詳しくはこのドキュメントを見てください。 https://jdbc.postgresql.org/documentation/head/query.html#query-with-cursor ことの発端 ちょっと仕事Java + jOOQ + PostgreSQLで、DBのデータを集計するようなバッチ処理を書いてまして、もちろん俺様の書いたコードにバグなんてある

    100万件ぐらいのレコードを扱ったらOOMEが出た話。 - 谷本 心 in せろ部屋
  • [PostgreSQL + Spring Boot + MyBatis]BLOBをデータベースで管理する

    はじめに 突然ですが、皆さんはアプリケーションで扱うBLOBデータをどこに保存しているでしょうか?大きく分けると、以下のいずれかになると思います。 ファイルストレージ データベース オブジェクトストレージ いずれも一長一短ありますが『SQLアンチパターン』という書籍では、データベースに格納することも検討せよ、としています。 では、データベースで管理するメリットとデメリットは何でしょうか。 メリット RDBMSのトランザクション内で操作が完結する(データだけ消えた、ファイルだけ消えたという不整合な状態にならない) データと同時にファイルのバックアップも取得できる バックアップ復元時にファイルも戻せる デメリット バックアップのサイズや取得時間が増加する バックアップの復元時間が増加する リソースを圧迫する ちなみに『SQLアンチパターン』には、オブジェクトストレージに関する記述はなかったと記

    [PostgreSQL + Spring Boot + MyBatis]BLOBをデータベースで管理する
  • 1