タグ

sqlに関するNishinaのブックマーク (10)

  • 複合主キーを避けるべき理由 - 虎塚

    データベース設計の話をしていて、「連番の主キーは業務上意味のないデータだから、テーブルに持たせるのはムダだ。複合主キーにするべき」という意見を聞く機会がありました。 脊髄反射で「ないわー」と思ったものの、理由を上手く説明できなかったので、改めて考えてみました。 その結果、次のような結論に至りました。 単一の連番カラムによる主キーと、複合カラムによる主キーとで迷ったら 実装をシンプルにし、業務変更の影響範囲を小さくするために、複合主キーを避ける というわけで、調べたことや考えたことをメモしておきます。# 間違っている部分があれば、教えていただけると嬉しいです。 (2011/07/25 追記)複合主キーとサロゲートキーについては、要件やシステムに依存して多様な判断がありうると思います。にもかかわらず、「避けるべき」というタイトルにしたのは極端でした。申し訳ありません。ご指摘下さった皆さん、あり

    複合主キーを避けるべき理由 - 虎塚
  • SQLダンプを生成するCakePHPプラグイン “Sql Dumper”

    とあるプロジェクトで、データベースのバックアップ用にSQLを吐き出す必要があったので作ってみました。 Sql Dumper Plugin for CakePHP 1.2+(github) # プラグインといっても、1ファイル1クラスのみ。。 できること DataSourceからテーブルを取得して、Create、Drop文を生成 テーブルに登録されているデータをInsert文として生成 生成したSQLを指定したファイルへ吐き出し mysqldumpやpg_dumpの代用になりますが、SQLの生成にはCakeSchemaクラスを利用しているので、Schemaで作成したテーブル以外は正しくダンプできるとは限りません。 # 定義されていない型とか、トリガーとか。 インストール git が使えるなら、 APP/plugins/ ディレクトリに移動して

    SQLダンプを生成するCakePHPプラグイン “Sql Dumper”
  • FROM句とWHERE句 - SQLer 生島勘富 のブログ

    SQLが分からないという人は、文法を理解しようとしてしまっていることが多い。ですが、私は文法解説は極力やりません。SQLは全体を把握してイメージでとらえないとまっとうに書けないからです。 SQLのSELECTは次の順で処理されます。 FROM・WHERE句の中のサブクエリ FROM・WHERE句(WHERE句の中の相関サブクエリ) GROUP BY句 HAVING句の中のサブクエリ HAVING句(HAVING句の中の相関サブクエリ) SELECT句 ORDER BY句 SQLが苦手だという人のほとんどは、最初に処理されるFROM句・WHERE句が理解できていません。SQLの基礎はFROM句とWHERE句で、これが理解できるだけで7〜8割できたのも同じですので、しっかりと身につけてください。 まずはイメージから TABLE_A と TABLE_B をそれぞれ B_ID と ID で結合する

    FROM句とWHERE句 - SQLer 生島勘富 のブログ
  • MySQLの最適化 | 株式会社フォレスト・コンサルタンツ

    01/13 Re2:「福沢諭吉の正体」-補足1-東大話法の元祖(山根治) 01/13 Re1:「福沢諭吉の正体」-補足1-東大話法の元祖(Kan Yabumoto) 01/07 Re6: ホリエモンの弁解術 -1(Smitha695) 01/07 Re1:謹んで新年のご挨拶を申し上げます(須増) 12/01 Re25: 倉田まり子事件の真相 -その3(ナマナマ) ※以前別の場所で書いた文章を備忘的に書き記しておきます。 処理速度改善等にあたって実施したMySQLの最適化についてメモ的に残しておきます。大量のデータを扱うSQLスクリプトを記述する際、役に立つかもしれません。 可能な限りSQL文は後から一括して実行。 LIMITを使い、呼び出すレコード数を制限。 SELECT等においてフィールドを呼び出す際、インデックスがあるものを優先して指定。 ソートする場合はインデックスがあるフィールドを

  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
  • MySQLの高速化のメモ - LukeSilvia’s diary

    最近Railsアプリを作成している中で、初めて高速化をやったので、その際のことをメモしておく。 高速化の手順 ベンチマークをとる まずはベンチマークをとっておく。これによって、どのくらい早くなったか見極める。Railsなら、script/performance/benchmarkerを使って出来る。 テストコードとして、大量のフィクスチャを用意し、それに対して処理したベンチをとる方法もあるが、フィクスチャのデータがかなり現実味を帯びている必要があるため、番環境でベンチをとった方がいい。 また、プロファイルして、当にDBアクセスがボトルネックになっているのかを見ておく。 スロークエリログを見る MySQLには、結果を得るのに一定時間以上かかったクエリを記録しておく、「スロークエリログ」という機能があるので、どのクエリがボトルネックになっているかをこのログを見て調べる。 ログファイルの場所

    MySQLの高速化のメモ - LukeSilvia’s diary
  • 【MySQLウォッチ】第8回 MySQLチューニングのテクニック:ITpro

    SlowLogの設定 環境設定ファイル(Windowsではmy.ini,Linuxではmy.cnf)に次のような設定を加えるとSlowLogが有効になる。 log-slow-queries SlowLogの有効化(ログファイル名を指定可能) long-query-time=2 SlowLogに記録する処理時間の上限 log-long-format インデックスを使用しないSQL文の記録 long-query-timeパラメータは,SlowLogに記録するしきい値を秒単位で設定する。この場合には,2秒超える処理時間を費やしたSQL文を記録する。また,log-long-formatを指定すると,インデックスを使用しないSQL文もSlowLogに記録する。 SlowLogの確認 SlowLogが動作しているかどうかは,次のコマンドで確認できる。log_slow_queriesがONであれば有効と

    【MySQLウォッチ】第8回 MySQLチューニングのテクニック:ITpro
  • 窓の杜 - 【REVIEW】SQL文の入力支援やER図作成に優れた高機能なSQL開発環境「A5:SQL Mk-2」

    「A5:SQL Mk-2」は、SQL文の入力支援やER図作成などの機能を備えた高機能なSQL開発環境。Windows 98/2000/XP/Server 2003/Vista/Server 2008/Vista x64に対応する寄付歓迎のフリーソフトで、作者のWebサイトからダウンロードできる。 ソフトは、SQL文の作成・実行を行える汎用のデータベース開発環境。ADOやODBCドライバーを利用して各種データベースに接続可能で、ソフトで作成したSQL文を実行し、その結果を表示できる。また、SQLの実行計画を取得したり、実行結果を「Excel」へ出力することも可能。 画面はサイドバーと編集画面の2つに分割されており、サイドバーではデータベースおよび関連するスキーマ・テーブル・ビューといった項目がツリー形式で表示される。編集画面はタブ切り替え式になっており、SQL文やテーブルなどを複数開いて

  • SQLチューニングやFacebook開発など参考になる「ZendCon08」のスライド集:phpspot開発日誌

    ZendCon 08 Slides SQLチューニングやFacebook開発など参考になる「ZendCon08」のスライド集。 ZendCon08のスライド集がSlideShareで公開されています。 個人的に興味をひかれたものをメモ。 他にも多数あるので皆さんも興味のあるものを時間のあるときにでもチェックするとよいかも。 Join-fu: The Art of SQL Tuning for MySQL Microsoft's PHP Community Involvement Facebook Development with Zend Framework PECL Picks - Extensions to make your life better PHP Security on i5/OS State & Ajax - How to Maintain Browser and App

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 1