2023/08/11(金)Perl DBI と prepare_cached() の罠 プログラム::Perlプログラム::DB Webアプリケーションで、prepare_cached() を使うと色々問題があったのでメモ。 問題あり テストコード DBD::Pgの場合 on PostgreSQL DBD::mysql on MariaDBの場合 prepare()でも落ちるのか? まとめ 問題あり prepare_cached() を使用すると、キャッシュヒット時(同じSQL文実行時)に$sthを再生成せずに再利用され、データ取得を含めた実行速度が220usが200usになるぐらいの効果があります。 しかし、prepare_cached() された状態でテーブルのカラムが変更されると問題が起こることが分かりました。 続きを読む