首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当内部连接组合使用它们时,识别码有用吗?

当内部连接组合使用它们时,识别码有用吗?
EN

Stack Overflow用户
提问于 2014-10-24 15:26:11
回答 1查看 19关注 0票数 0

我有三张桌子:

代码语言:javascript
复制
Orders

OrdersPromotions

Promotions

我的大多数问题都是这样的:

代码语言:javascript
复制
SELECT `promotions`.* FROM `promotions` INNER JOIN `orders_promotions` ON `promotions`.`id` = `orders_promotions`.`promotions_id` WHERE `orders_promotions`.`orders_id` = 3 AND `promotions`.`code` = 'my_promotion_code'

所以,我从来没有直接得到晋升,但也在一个订单的范围内。一个订单不会有太多的晋升。我想知道在升级代码列中放置索引是否有用,因为知道在执行内部连接时,内部连接后的结果并不多,因此,可以通过所有这些索引找到给定的推广代码。

在我的上一次查询中,索引是否有意义,因为它只知道这个查询:

代码语言:javascript
复制
SELECT `promotions`.* FROM `promotions` INNER JOIN `orders_promotions` ON `promotions`.`id` = `orders_promotions`.`promotions_id` WHERE `orders_promotions`.`orders_id` = 3

返回不超过20行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-24 15:28:07

在where子句中,几乎应该始终对要用于联接、排序、分组或筛选的任何字段使用索引。我会说总是这样,但是规则可能会有例外(例如,如果表上有非常重的写负载,而在索引有用的地方很少使用它)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26551136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档