DBIC, HashRefInflatorを使うまでもなかった。

| コメント(0)

DBICというか DBIx::Class ですが、0.8から新しく入ったDBIx::Class::ResultClass::HashRefInflator でも使うかなと思ってたところ ちょこっと弄ったら、全然不要でした。

#    # 0.2 sec
#    $result_rs->search({id => \@ids})->update({folder_id=>$folder_id});

#    # 6 sec
#    for my $id (@ids) {
#        my $result = $result_rs->find({id=>$id}) || die;
#        $result->set_from_related('folder', $folder);
#        $result->update;
#    }

#    # 6 sec
#    for my $id (@ids) {
#        my $result = $result_rs->find({id=>$id}) || die;
#        $result->set_column( folder_id => $folder_id );
#        $result->update;
#    }

@idsは200個ぐらい。 resultはfolderに属している(belongs_to)です。

計測はiTunes再生しながら Benchmark::Stopwatch しましたので不正確ですケド・・・

発行されるSQL文の低減とinflate_resultが無くなったのが要因かにゃ。

コメントする