1

我有两个表“类别”表,其中一个列为“类别名称”和“专业”表,其中一个列为“类别 ID”。

现在我正在“类别表”中搜索某些类别,然后获取具有该类别的那些专业人士。

我面临的问题是,在加入“专业”和“类别”表的情况下,它看起来好像正在搜索“专业”表中的太多行。(如果我错了请忽略)

连接是否可能仅发生在从“类别”表中的搜索返回的那些行上。 在此处输入图像描述

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

您需要在表中index创建一个professional_category_idprofessionals

这将有助于对记录进行更快和最少的搜索

选择

这个问题也可以使用参照完整性约束来解决,如下所示:

如果专业表具有属性professional_category_id作为引用类别表中的category_name属性外键,那么这也可以实现。这种外键约束也有助于更快/最小的搜索。在这种情况下,您不需要在professional_category_id属性上显式创建任何索引

于 2013-10-23T07:13:25.857 回答