on_connect_do
で、下記の PRAGMA synchronous = off
だとか、MySQL の SET NAMES utf8
みたいなのを DBIC でやるばあいは
$schema->storage->on_connect_do( ['SET NAMES utf8'] );
みたいにするわけだけど、これは今はschemaクラス自体には書いておけないのでめんどくさい。(0.699..のほうではできるようになっている)
Catalyst でつかうだけなら、今の DBIC でも、Model::DBIC::Schema の connect_info
で on_connect_do
を書いておける。
connect_info => [
'dbi:SQLite:dbname=foo.db',
{ on_connect_do => [ 'PRAGMA synchronous = OFF', ], }
],
blblack++
PRAGMA synchronous
IRC で興味深い話題。
SQLite には synchronous という PRAGMA があり、これが off(0) だと MySQL でいうと MyISAM っぽく、full(2) だと InnoDB っぽくなるらしい。デフォルトは full。
ので、パフォーマンス重視の場合、PRAGMA synchronous = off; しろと。