タグ

MySQLとSQLに関するakaneharaのブックマーク (2)

  • DBIでbindした後のSQL文を引っ張り出す方法 - download_takeshi’s diary

    会社で隣の席にすわってるKさんから「DBIでexecuteする時に色々な値をbindするじゃないですか。その後で実際に投げられたSQL文を引っ張ってくる方法ないんですか?」と質問されちゃいました。 そう言えばDBIx::Classとかだと環境変数でなんかセットするんだったけど、素のDBIの場合どうするのかな?と思って調べてみました。 DBIの長い長いドキュメントをずーっと読み進んで行くと、下の方に「TRACING」というセクションがありまして、そこにヒントが隠されてました。 どうやらTrace Flagsで「SQL」と指定すると標準エラーにトレース情報が出力されるみたいです。 具体的にはこれでいいみたい。 $dbh->{TraceLevel} = "3|SQL"; これでSTDERRにバコバコっとトレース情報が出力されて行きます。 STDERRの中に、実際に投げられたSQL文も含まれている

    DBIでbindした後のSQL文を引っ張り出す方法 - download_takeshi’s diary
  • MySQLインデックスの基礎 : ひとつのテーブルに対するクエリの最適化法 | Yakst

    MySQLのインデックスを効果的に使うにはどうしたらいいのかについての分かりやすい解説。そもそもインデックスの役割はとは何か、そしてどうすればその役割を果たしてくれるのかを説明する。 たとえ1つのテーブルだけに対して実行されるクエリでも、パフォーマンスが悪いというのはよくあることです。その理由は簡単で、インデックスの作り方がまずいため、実行計画がおかしくなってしまうのです。ここでは、1つのテーブルのみに対する色々なクエリを最適化するためのガイドラインを挙げてみたいと思います。 おことわり : あらゆる状況をカバーしようとはせず、一般的なガイドラインを提示するに留めるつもりです。ここで挙げたものがうまく適用できない例を簡単に見つけることができるのは間違いないでしょうが、ほとんどの場合はここに書いたことが十分なのも事実です。また、MySQL 5.6以上にあるIndex Condition Pu

    MySQLインデックスの基礎 : ひとつのテーブルに対するクエリの最適化法 | Yakst
  • 1