sql - 对表建立索引以获得更好的查询性能

标签 sql sql-server performance optimization indexing

您建议在表上创建哪些索引,以使以下类型的查询更加高效:

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/

相关文章:

c# - C#中不断切换动态数据类型性能

sql - 避免 SQL 表中值(两列)的重复 "pairs"

php - SQL - 获取 ID 介于 5 和 10 之间的行..

sql - 在cte查询sql server 2008中初始化和增加变量

sql-server - Sql Server行大小限制和表设计

python - 如果在 Python Selenium 上找不到替代元素,是否有更有效的方法来设置替代元素?

php - 如何将 SQL 中的流派列表传输到单独的数据库

php - 在 Yii 中编写查询

c# - 使用 lambda 查询获取前 5 个值

performance - 计算机科学的不确定性原理