blogこの広告は、90日以上更新していないブログに表示しています。railssqlのパフォーマンスで実験していたので、試した結果を載せます。前提条件Speakerモデルというのがあります。テーブルの状態は下記のようになります。sec)データは50,000件入れており、下記のような状態になっています。last_nameに関する検索条件を行います。last_name:「太郎」を検索します。railsのwhereで検索してみます。+09:00>]結果を出すのに、0.0329秒かかっていることになります。一つ、複合で検索する場合を想定してみます。山田30???という場合です。'太郎'こちらは結果を出すのに、0.026秒になります。explainでsqlの状態を図るmysqlでexplainという便利な関数があります。こちらは、sqlの状態を調べてくれるもになります。前者のsqlを使用してみます。sec)後者になります。sec)詳細な項目は下記を参考にしてください。nippondanji.blogspot.jp上記を見て、「possible_keys」がnullになっております。これはindexが貼られていない状態になります。indexをつけてみましょう。endendindexをつけて、先程の結果を見てみます。)前者は、「32.9ms」→「0.4ms」と劇的にパフォーマンスが上がりました。'太郎'後者「26.3ms」→「74.4ms」と悪化しました。あれ、悪化している・・・orzこの原因はlikeの曖昧検索で先頭に「%」が付いているから、indexが効かないようになっているようです。'太郎'3.1msとそれなりに早くなりました。ちなみにindexがない状態です。'太郎'「22.9ms」→「3.1ms」単純なindexだけでもこんな効果があるとは・・・ちなみにexplainの結果です。|+----+-------------+----------+------+------------------------------+------------------------------+---------+-------+------+------------------------------------+後者です。keyにindexが効いているように変化していますね。explainについては、使い方がまだまだだと思うので、積極的に調べていきたいと思います。last_nameを二つのカラムがあるとします。これを...2016-06-25countについてsqlが苦手な私です。今回はcountについてです。(2)はてなブログをはじめよう!frozen_faithjpさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。