2009-08-22 6 views
3

私は約35の列幅であるMySQLユーザーテーブルを持って、私はほとんどの場合、picture_urlを問い合わせるもの、ユーザ名、onlinestatusは表の右端に配置されていることがわかります。最も多く使われているアイテムをテーブルの冒頭に置いたほうがよいでしょうか?頻繁に使用される場合は、広いmysqlテーブルの列を左に移動する必要がありますか?

+0

おそらく答えは、使用するテーブルのタイプによっても異なります。 – Zed

+0

テーブルはmyism(スペル)です – JasonDavis

答えて

3

列の位置は、任意のMySQLのストレージエンジンでのパフォーマンスに全く違いはありません。行から列を読み取ると、ディスク上のデータファイルからその行を検索して読み取るI/Oが最も高価な部分を既に抱えています。

あなたが頻繁に使用される列のパフォーマンスを向上させたい場合は、インデックスを使用しています。 covering indexesについては、テーブルストレージから行の残りの部分を読み取ることなく、クエリがインデックスから列の値を読み取ることもできます。しかし、これはまた、列の順序の位置とは関係がありません。列とパフォーマンスについて

もう一つのヒント:あなたのクエリは列のみのサブセットを必要とする場合、SELECT *を使用しないでください。ネットワーク上のすべての列をアプリケーションに転送するにコストがかかります。すべての列が必要ない場合は、それらをフェッチしないでください。

+0

コメントありがとうございます。マイクエリアとテーブルが最大に最適化されて、私は今、数年のためにそれらに取り組んできた、私はちょうどので、私はあなたをしなかったこと – JasonDavis

+0

について他の人に聞いて欲しかっ先頭に最も頻繁にアクセスされた列を移動させることに優れていたことを読んでそれを読んで? –

+0

私はわからない、私はそれがGoogleやFacebookは、パフォーマンスの話のようなものだったと思い – JasonDavis

関連する問題