我应该以最常见的情况开始CASE顺序条件吗?假设在我的数据库中有3个产品。产品编号1.代表所有病例的70%,产品编号2代表29%的案例和产品编号。 1%的病例。SQL中CASE的性能是否与案例的频率有关?
这是关于性能的最佳条件顺序吗?
SELECT
CASE
WHEN Product=1 THEN 'Most popular case'
WHEN Product=2 THEN 'Not very popular'
WHEN Product=3 THEN 'Very rare case'
END AS Frequency
只是很好理解。这是糟糕的顺序吗?
SELECT
CASE
WHEN Product=3 THEN 'Very rare case'
WHEN Product=2 THEN 'Not very popular'
WHEN Product=1 THEN 'Most popular case'
END AS Frequency
我知道的情况下,声明事项的查询执行的顺序,并尽快退出如发现第一个真正的条件。但我的问题是关于CASE的频率。
我想你是低估了查询优化器。在我看来,最好专注于编写正确和可读的SQL查询,而不是微观优化具有可疑收益的事物。 – 2015-03-13 09:38:23
很容易检查哪些案例最受欢迎,并将其置于查询之上。我只想确认它是否重要。 – 2015-03-13 09:41:25
优化'SELECT'通常不是那么重要,因为您应该更关心'WHERE'必须首先找到记录。因此,如果您有十亿条记录,而您的选择会返回其中的十条,那么您正在优化这10条记录。 – 2015-03-13 09:42:40