select
* from table
where
substring(username,1) >= 'A'
and substring(username,1) <= 'C'
and height_in_meters * 100 > 140
and height_in_meters * 100 < 170;
加快查询的可能方法是什么?它运行得很慢
答案 0 :(得分:1)
您可以优化
WHERE username >= 'A'
AND username < 'D'
AND height_in_meters > 1.4
AND height_in_meters < 1.7;
所以你保存计算
答案 1 :(得分:1)
where username like '[A-C]%'
允许在username
上使用索引(如果存在),而不是通过一个总是阻止它的函数传递username
。
答案 2 :(得分:1)
我认为您不会从查询中获得很多性能提升。 也许通过删除子字符串,但这是我能想到的全部。
select
* from table
where
username >= 'A' AND username <= 'CZ'
and height_in_meters * 100 > 140
and height_in_meters * 100 < 170;
我在Z
之后添加了C
,因此还包含以C
开头的用户名