タグ

2011年2月9日のブックマーク (6件)

  • DBIx::Class::Manual::Cookbook - 様々なレシピ

    検索 検索結果のページ分け 問い合わせに対して大量の結果が返されることが予想される時は、DBIx::Classに対して結果セットをページ分け(一度に少しずつ取得)するよう要求することができます: my $rs = $schema->resultset('Artist')->search( undef, { page => 1, # 取得したいページ番号(デフォルトは1) rows => 10, # ページ毎の件数 }, ); return $rs->all(); # 1ページ目を全て取得する page属性は、検索において必ずしも指定する必要はありません: my $rs = $schema->resultset('Artist')->search( undef, { rows => 10, } ); return $rs->page(1); # 最初の10レコードを含むDBIx::Class

  • DBIx::Class::Manual::Cookbook - レシピいろいろ - perldoc.jp

    名前¶ DBIx::Class::Manual::Cookbook - レシピいろいろ レシピ¶ 検索¶ ページ処理された結果セット¶ When you expect a large number of results, you can ask DBIx::Class for a paged resultset, which will fetch only a small number of records at a time: 結果セットが膨大になりそうなら、ページ処理された結果をDBIx::Classで取得できます。 一回に、少しのレコードしかとってきません: my $rs = $schema->resultset('Artist')->search( undef, { page => 1, # page to return (defaults to 1) rows => 10, #

  • DBIx::Class::Cursor::Cachedつかってみた - unknownplace.org

    すばらしすぎる。もっと早く使えばよかったとおもった。 Catalyst::Model::DBIC::Schema で使う場合はこんな感じでOK。 sub new { my $self = shift->NEXT::new(@_); my $cache = Cache::FastMmap->new( share_file => $self->{cache_file} ); $self->schema->default_resultset_attributes({ cache_object => $cache, }); $self; } そんで、あとはsearchのattrとして { cache_for => 300 } とかかいてやればそのクエリは300秒キャッシュされる。 実際にはsearch時ではなくてallとかnextのときにそのクエリをキャッシュしてる。 ちなみにdefault_re

  • MySQL Clusterのインストール

    MySQL Clusterとは MySQL ClusterはMySQL Serverのストレージエンジンの1つであり、「並列」「負荷分散」「高可用性」という特徴を備えています。 ストレージエンジンであるため、MyISAMやInnoDBと同じようにテーブル定義においてENGINE=NDBCLUSTERとすることで、MySQLのデータを格納する実体として利用することができます(100%完全にというわけにはいきませんが、MySQLではユーザーが特にクエリを変更しなくても違う種類のストレージエンジンに対して同じ操作が行えます)。 そして、MySQL Clusterにはほかのストレージエンジンにはない、いくつかの特徴を備えています。その特徴を紹介していきましょう。 まず、ストレージエンジンを提供するプログラムが、MySQL Serverの外部のプロセスであるということです。そして多くの場合、プロセス

  • YAPC::Asia 2009 特別研修 - Moose 入門

    先週末の YAPC::Asia 2009 のカンファレンスに引き続き、特別研修『Moose入門、モダーンなオブジェクト指向システム』に参加してきた。 研修の内容は、Moose とはなんぞやから始まり、以下(だいたい)7 部構成の入門講座。 Moose Concepts : コンセプト ざっと機能一通りみてみる なぜ Moose なのか Classes : Class の基礎から使い方 Moose::Object が何持ってるかとか BUIDLARGS, extends, override, super の使い方 Moose 使ったあとの後始末 (no Moose;) Role : Role の基礎から使いかた Role の持つ意味 使い方 alias で衝突回避 Basic Attributes : Attribute いろいろ required, default/builder, laz

  • ここが新しい!MySQL 5.1

    行ベースレプリケーション MySQLにはマスター/スレーブ型のレプリケーション機能があります。MySQLでサポートしているのは非同期型のレプリケーションで、マスターサーバーで実行されたSQLステートメントをスレーブサーバーへ転送し、スレーブで再実行することでデータを一貫に保つという手法を用いています。 これはステートメントベースレプリケーション(SBR)と呼ばれています。SBRではその仕組み上、根的な問題があります。例えばUUID()という関数がありますが、マスターとスレーブでUUID()を実行するとそれぞれ違う結果になってしまいます。 その結果、マスターとスレーブにはデータの不整合が生じてしまいます。この問題を解決するには、スレーブへ伝達する情報をステートメントではなく、実際にテーブルへ書き込まれた内容、つまり行そのものにする必要があります。それを実装したのが行ベースレプリケーション(