您建议在表上创建哪些索引,以使以下类型的查询更加高效:
SELECT MAX(val1)
FROM table
WHERE val2 = 'x' OR val3 = 'y'
x 和 y 当然是可变的。 val2 和 val3 几乎总是唯一的,可能会出现一些重复。
最佳答案
在 val2
+val1
上有一个索引,在 val3
+val1
上有另一个索引
并编写如下查询:
SELECT MAX(val1)
FROM (SELECT max(val1) FROM table where val2 = 'x'
UNION ALL
SELECT max(val1) FROM table val3 = 'y'
) dt
关于sql - 对表建立索引以获得更好的查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6943809/