1

「カテゴリ名」として列の 1 つを持つ「カテゴリ」テーブルと、「カテゴリ ID」として列の 1 つを持つ「プロフェッショナル」テーブルの 2 つのテーブルがあります。

現在、「カテゴリ テーブル」で特定のカテゴリを検索し、そのカテゴリを持つ専門家を取得しています。

私が直面している問題は、「Professional」テーブルと「category」テーブルを結合すると、「Professional」テーブルの行が多すぎるように見えることです。(間違っていたら無視してください)

「カテゴリ」テーブルの検索から返された行でのみ結合が発生する可能性はありますか? ここに画像の説明を入力

explain select c.id from professional_categories as c  
inner join professionals as p  on p.professional_category_id=c.id 
where c.professional_category_name like 'ABC%'

以下は、プロのテーブルからのインデックスです。 ここに画像の説明を入力

4

1 に答える 1

0

indexon professional_category_idinprofessionalsテーブルを作成する必要があります。

これにより、レコードの検索がより迅速かつ最小限に抑えられます。

この問題は、次のように参照整合性制約を使用して解決することもできます。

プロフェッショナルテーブルに、カテゴリテーブルのcategory_name属性を参照する外部キーとして属性professional_category_idがある場合、これも実現できます。この外部キー制約により、検索の高速化/最小化も促進されます。この場合、professional_category_id属性に明示的にインデックスを作成する必要はありません

于 2013-10-23T07:13:25.857 に答える