タグ

sqlに関するziguzaguのブックマーク (4)

  • 「ちょっと待て」 真・MySQLのクエリを最適化する10のTips:CodeZine

    Jaslabs: High performance phpで紹介された「MySQLのクエリを最適化する10のTips」に対して、反論している人がいる。ブログ「20bits」のJesse氏だ。彼は「10 Tips for Optimizing MySQL Queries (That don’t suck)」というエントリーで、Jaslabs氏の記事は適切でないとしている。 Jesse氏の経験によれば、SQL最適化で最も重要なことはSQLDBの基をしっかりと理解することであり、60%がこれで解決するという。残り35%はDBやクエリの特殊な性質に対する対処であり、最後の5%で発想の転換などを求められる。Jaslabs氏はここにばかり力を入れており、それはまったくもって時間の無駄だと述べている(Jesse氏は「SQL_SMALL_RESULTなんて、生まれてこの方使ったことすらない」とまで言

  • 捕捉:MT 3.31 + SQLiteがベラボーに遅い件について - Tociyuki::Diary

    Ogawa::Memoranda さんが指摘されている、MovableType (以下、MT)の 3.31 ブランチの、mt_entry 表と mt_objecttag 表の結合で、SQLite の最適化が不適切になる理由を調べてみました。 結論を先に述べると、mt_entry.entry_status へのインデックスが存在するために、SQLite の最適化ルーチンがだまされていました。SQLite ではインデックスが存在すると、行のふるい落しがおこなわれることを暗に期待するのですが、残念ながら、通常のブログにおいては mt_entry.entry_status = 2 の制約条件は、行のふるい落しに寄与せず、mt_entry のほとんどの行を参照していました。 さて、問題は次のような単純な結合をもつ SELECT 文です(注: mt_entry 表と mt_objecttag 表には同

    捕捉:MT 3.31 + SQLiteがベラボーに遅い件について - Tociyuki::Diary
  • SQL Cookbook

    Read it now on the O’Reilly learning platform with a 10-day free trial. O’Reilly members get unlimited access to books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers. You know the rudiments of the SQL query language, yet you feel you aren't taking full advantage of SQL's expressive power. You'd like to learn how to do more work with SQL inside the d

    SQL Cookbook
    ziguzagu
    ziguzagu 2005/12/21
  • Class::DBI::SweetでのJOIN : blog.nomadscafe.jp

    Class::DBI::SweetでのJOIN Class::DBI::Sweetのjoinをつかった検索を試してみた。 ソースコードは作っているアプリケーションからの抜きだしなので足りないところがあるかも。 EntryとそのTagを想定して、 package Entries; __PACKAGE__->table('entries'); __PACKAGE__->columns(All=>qw/id title text created_on/); __PACKAGE__->has_many("tags"=>'Tags'); 1; package Tags; __PACKAGE__->table('tags'); __PACKAGE__->columns(All=>qw/id entry_id tag/); __PACKAGE__->has_a('entry_id'=>'Entries'

  • 1