サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
https://github.com/cookpad/arproxy http://rubygems.org/gems/arproxy これは何? Arproxyを使うと、ActiveRecordが発行したSQLがDB Adapterによって実行される直前をフックすることができます。これによって、カスタマイズしたクエリログを出力したり、どこからクエリが発行されたのかをトレースしたりすることができるようになります。 Arproxyでは、DB Adapterのフック処理を以下のように定義します。これはクエリが実行されるたびにバックトレースを出力する例です。*1 class QueryTracer < Arproxy::Base def execute(sql, name=nil) Rails.logger.debug sql Rails.logger.debug caller(1).join(
CakePHP 1.2.1を使ってます。 CakePHPはconfig/core.phpのdebug値を2にすると、画面にアクセスした際に発行されたSQL文が表示されます。これに加えて、発行したSQL文にExplainをかけてその結果を追加表示するコンポーネントを作りました。 動作チェックはMySQLでしましたが、explainを使えるPostgresなんかでも動くと思います。Oracleとかexplain planとかやらなきゃいけないっぽいので、たぶん動きません。 Explainの説明などは下記を参照(from opparaさんブログ) http://dev.mysql.com/doc/refman/5.1/ja/explain.html http://blog.livedoor.jp/nipotan/archives/3743275.html http://dev.seesaa.ne
ちょっと遅めの夏休みをもらって八丈島に行ってきました nakamura です!いい所すぎて危うくそのまま移住するところでした。 データベースの移行をする際みなさんどんな流れで作業しているでしょうか。コマンドラインでダンプを取って、サイズが大きかったら gzip で圧縮して、WinSCP でそれをローカルに落としてきて、それをまた別のサーバにアップロードして・・・・なんて事してたりしませんか? シェルのパイプやリダイレクトをうまく使ってあげれば、この辺りはコマンド一発でいけちゃったりするのです。今日はそんなコマンド例のご紹介です。 実際によく使うコマンドの例を箇条書きで。 とりあえずダンプの結果をそのまま圧縮する。 mysqldump -udb_user db_name -pdb_pass | gzip > db_name.dump.sql.gz 特定の文字列を置換した上で圧縮する。 MT
テーブルのJOINが苦手でしたが、この例を思いついてからは、すっきりくっきり理解できるようになりました。むしろ頭から離れません……。 ※ INNER、OUTERは飾り。省略できる。 INNER JOIN → JOIN LEFT OUTER JOIN → LEFT JOIN RIGHT OUTER JOIN → RIGHT JOIN ※ ON ...=... をまとめて USING(属性) と書ける。 ※ 何で結合するか言うまでもない時は、NATURALを指定すると勝手にJOINしてくれる。NATURALにJOINして……。 ※ WHEREは結合した結果に作用する。 ※ 現実には上図のように1対1で結合しません。 ※ おまけ。CROSS JOIN。 こんなの使いません。 ブクマ用画像。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く