2016-09-20 34 views
0

1つのテーブルにカンマ区切りの値を格納するフィールドはほとんどありません。カンマ区切りの値からデータを検索するには、FIND_IN_SETなどのクエリを表示できます。MySQL - FIND_IN_SET(カンマ区切りのフィールド値)

MySQL query finding values in a comma separated string

しかし、私は、パフォーマンスへの影響を与えるコンマと同様、どのくらいの両方のオプションFIND_IN_SET('red',colors) &ことを知りたいのですが?結果を提供するためにフィールド索引付けが使用されていますか?

もしそうでなければ、インデックスを使用してクエリを最適化し、コンマ区切りフィールドから高速にデータをフェッチする方法はありますか?

答えて

0

クエリパフォーマンスの基本的なルール:クエリに適したインデックスを調整してください。あなたの質問は何ですか? SHOW CREATE TABLEも見てみましょう。

インデックスの基本的な使い方:関数内でインデックス付きの列を非表示にしないでください。そうすると、インデックスが無視されます。それはテーブル全体をスキャンすることにつながります。それは遅いです。私はFIND_IN_SET()に隠されたcolorを指しています。

スキーマを構築する際の基本的なルールは、「配列」は通常は別のテーブルに行として表現する必要があるということです。共産主義者ではない。列全体に広がっていません。

関連する問題