ブックマーク / www.techscore.com (5)

  • JDBC setFetchSize() ではまった話 | TECHSCORE BLOG | TECHSCORE BLOG

    JDBCのsetFetchSizeメソッドはご存知でしょうか? 通常、クエリの結果はResultSetにすべてロードされます。このため、大量のレコードを取得するようなクエリではOutOfMemoryErrorが発生してしまいます。 このような場合に有効なのがsetFetchSizeです。 たとえば、クエリ発行の前にsetFetchSize(1000)とすると、1000件ずつResultSetにとりこまれるようになり、OutOfMemoryErrorを回避することが可能です。 (もちろん、搭載メモリ量、1レコードあたりのサイズによります!) しかし、ここに罠がありました。。。 setFetchSizeを使用しているにもかかわらず、全件がResultSetにロードされてしまう場合があるのです。 JDBCドライバごとにsetFetchSizeの挙動がかなり違っているので、はまりどころです。 今回

    JDBC setFetchSize() ではまった話 | TECHSCORE BLOG | TECHSCORE BLOG
    proxy0721
    proxy0721 2019/09/29
    シェアありがてぇ
  • PostgreSQLでインデックスを効率良く利用しよう | TECHSCORE BLOG | TECHSCORE BLOG

    どうも、Benoîtです。 TECHSCORE Advent Calendar 2014 の 4 日目の投稿です。 PostgreSQLではいろいろなインデックス種類が存在する。使い方も様々である。インデックス種類の概要のあとに一番使われるB-treeインデックスの使い道や保守の話しを深めていく。 インデックスとは特定の項目を素早く参照できるようにするためのもの。B-treeインデックスに関してはソートに使うこともできる。 インデックスの種類 PostgreSQLはいろいろなインデックスに対応している。 B-treeインデックス、CREATE INDEX を利用するとデフォルトで選択されるインデックスである。Bの字はバランスの意味で、イメージとしてはtree(木構造)のroot(根)からleaf(最下層のノード)までの階層数がなるべく揃うようにバランスを取る。B-treeインデックスはどの

    proxy0721
    proxy0721 2016/02/09
  • ActiveSupport::Concern でハッピーなモジュールライフを送る | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 以前のエントリで「includeされた時にクラスメソッドとインスタンスメソッドを同時に追加する頻出パターン」をご紹介しました。 今回は、それに関する定形処理を肩代わりしてくれる ActiveSupport::Concern をご紹介します。 includeされた時にクラスメソッドとインスタンスメソッドを同時に追加するパターン Before 以前のエントリ(includeされた時にクラスメソッドとインスタンスメソッドを同時に追加する頻出パターン)でご紹介していますが、おさらいしましょう。 module M def self.included(base) base.extend(ClassMethods) end module ClassMethods def foo puts 'foo' end end def bar puts 'bar' end end

    proxy0721
    proxy0721 2014/12/03
  • 隔離の技術Dockerの考え方と使い方の基本 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 「AWSDockerを使ってみよう!」では Docker を取りあえず使ってみました。今回は「Docker とは?」というところから、Docker の基的な操作を行うところまで見ていこうと思います。 Docker とは Docker とはコンテナ型の仮想化を実現するためのソフトウェアです。 Xen や VMware のようなサーバ仮想化との違いは、扱う単位がマシンではなくプロセスである点です。 この違いは非常に重要です。 サーバ仮想化ではホストマシン上でゲストマシンが動き、ゲストマシン内で様々なプロセスが動きます。一方のコンテナ型の仮想化では、ホスト OS 上にコンテナという隔離された空間が作成され、その中でプロセスが実行されます。 コンテナは隔離の技術 Docker を使い始めたばかりだと「コンテナ内に bash で接続してみたけれど cron や syslo

    proxy0721
    proxy0721 2014/10/06
  • Rails 4.1.0 で追加された Module#concerning と関心事の分離 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 Rails 4.1.0 で Module#concerning というメソッドが追加されました。 Module#concerning とは Rails 4.0 で concerns ディレクトリが追加されたことを覚えているでしょうか。(see 「2.4. concerns ディレクトリの導入」) concerns ディレクトリに Mixin 用のモジュールを置いて、それをモデルなりコントローラなりで include する、という使い方をするものですが、Module#concerning を用いると、わざわざ concerns ディレクトリにファイルを作成せずに、モデルクラスの中に記述することができます。 コードで表すと、Rails 4.0 では以下のように書くことができるようになりました。 # app/models/article.rb class Article

    proxy0721
    proxy0721 2014/08/28
  • 1