FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MySQL速度向上プロジェクト

更新そっちのけで完徹でMySQLの速度向上に努めてました。

あらすじ
日本語検索システムを導入したHENTAIは処理速度の遅さに愕然としたのだった。検索結果が8秒、12秒は当たり前。これではいかんとググりまくってMySQLのことを調べる。EXPLAIN、ORDER BY、複合インデックス・・・。次々と判明するMySQLの仕様に挑戦するHENTAIの戦いが始まった~

一晩中格闘した末に気づいたことを以下にメモっときます。

『MySQL速度向上メモ』
(注!記事主はド素人です。以下の情報は記事主がよくわからないのに適当にメモっただけです。MySQL使いなら常識であるか間違った情報も多々あろうと思われますのであまりアテにしないよーに!)


  1. FULLTEXTが云々よりもクエリを最適化すると格段に違うのでEXPLAINで格闘。

  2. (1000件中1-10)のような全体の件数を取得するときは別にクエリを要求してmysql_num_rowsするわけだが、その際に要求するクエリはできるだけ小さくする。例えばフィールド名『ID』にプライマリーキーを設定していたら、SELECT ID FROM table とか。どーせ全体取得用のクエリは表示しないからソートも省く。これで体感速度がぐっと上がった。

  3. JOINしてFULLTEXT検索したテーブルを降順でソートしようと、複合インデックス貼ったらクソ遅いし外したらusing filesortとかいろいろ出てきてとにかくORDER BYがらみはこんがらがってわけわからん!面倒くさかったので、ALTER TABLE `table` ORDER BY `field` DESCでデータごとソートしてむしゃくしゃしてやった。


  4. こういう機械いじりってなんか夢中になりだすと止まらない・・・成果は今のところ検索結果が0.06秒台で出てきます。なんとか実用に耐えうる数字か・・・。

    更新遅れて&つまんねー記事で申し訳ない。
    関連記事

コメントの投稿

非公開コメント

ダウンロード

最新記事
カテゴリ
月別アーカイブ
検索フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。