Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在多个列上有一个唯一的键会加快对其中一个索引列的查询吗?_Sql_Oracle_Database Design - Fatal编程技术网

Sql 在多个列上有一个唯一的键会加快对其中一个索引列的查询吗?

Sql 在多个列上有一个唯一的键会加快对其中一个索引列的查询吗?,sql,oracle,database-design,Sql,Oracle,Database Design,假设我在(1,2,3)上有一个唯一的密钥。这会自动在键的组合上创建一个唯一的索引(据我所知)。但是如果我在第2列中搜索,索引会起作用吗?或者我需要定义一个略高于2的索引吗?Oracle可能(取决于版本)在查询列2时使用1,2,3上的索引。不过,这需要Oracle进行索引跳过扫描。这通常不是一条特别有效的访问路径。不过,它的效率将取决于表中不同的column1值的数量——这些不同的值越多,索引跳过扫描的效率就越低,Oracle选择该路径的可能性就越小 通常,如果查询包含一个或多个前导列上的谓词,您

假设我在(1,2,3)上有一个唯一的密钥。这会自动在键的组合上创建一个唯一的索引(据我所知)。但是如果我在第2列中搜索,索引会起作用吗?或者我需要定义一个略高于2的索引吗?

Oracle可能(取决于版本)在查询
列2
时使用
1,2,3
上的索引。不过,这需要Oracle进行索引跳过扫描。这通常不是一条特别有效的访问路径。不过,它的效率将取决于表中不同的
column1
值的数量——这些不同的值越多,索引跳过扫描的效率就越低,Oracle选择该路径的可能性就越小

通常,如果查询包含一个或多个前导列上的谓词,您可能只希望Oracle使用索引。例如,如果您的索引是在
2,1,3
上定义的,那么您的查询更有可能从使用索引中获益。当然,这意味着一个仅在
column1
上有谓词的查询将面临不使用索引或根据不同
column2
值的数量进行索引跳过扫描的问题。

这是可能的(取决于版本)Oracle可以在查询
第2列时使用
1,2,3
上的索引。不过,这需要Oracle进行索引跳过扫描。这通常不是一条特别有效的访问路径。不过,它的效率将取决于表中不同的
column1
值的数量——这些不同的值越多,索引跳过扫描的效率就越低,Oracle选择该路径的可能性就越小

通常,如果查询包含一个或多个前导列上的谓词,您可能只希望Oracle使用索引。例如,如果您的索引是在
2,1,3
上定义的,那么您的查询更有可能从使用索引中获益。当然,这意味着一个仅在
column1
上有谓词的查询将面临不使用索引或根据不同
column2
值的数量进行索引跳过扫描的问题。

这是可能的(取决于版本)Oracle可以在查询
第2列时使用
1,2,3
上的索引。不过,这需要Oracle进行索引跳过扫描。这通常不是一条特别有效的访问路径。不过,它的效率将取决于表中不同的
column1
值的数量——这些不同的值越多,索引跳过扫描的效率就越低,Oracle选择该路径的可能性就越小

通常,如果查询包含一个或多个前导列上的谓词,您可能只希望Oracle使用索引。例如,如果您的索引是在
2,1,3
上定义的,那么您的查询更有可能从使用索引中获益。当然,这意味着一个仅在
column1
上有谓词的查询将面临不使用索引或根据不同
column2
值的数量进行索引跳过扫描的问题。

这是可能的(取决于版本)Oracle可以在查询
第2列时使用
1,2,3
上的索引。不过,这需要Oracle进行索引跳过扫描。这通常不是一条特别有效的访问路径。不过,它的效率将取决于表中不同的
column1
值的数量——这些不同的值越多,索引跳过扫描的效率就越低,Oracle选择该路径的可能性就越小


通常,如果查询包含一个或多个前导列上的谓词,您可能只希望Oracle使用索引。例如,如果您的索引是在
2,1,3
上定义的,那么您的查询更有可能从使用索引中获益。当然,这意味着一个仅在
column1
上有谓词的查询将面临相同的问题,即不使用索引或根据不同的
column2
值的数量进行索引跳过扫描。

通常,索引会加速选择查询,但会减慢写入数据库的查询。它们是插入、删除和更新。一旦你意识到这一点,事情就需要更多的思考。一般来说,索引会加速选择查询,但会减慢写入数据库的查询。它们是插入、删除和更新。一旦你意识到这一点,事情就需要更多的思考。一般来说,索引会加速选择查询,但会减慢写入数据库的查询。它们是插入、删除和更新。一旦你意识到这一点,事情就需要更多的思考。一般来说,索引会加速选择查询,但会减慢写入数据库的查询。它们是插入、删除和更新。一旦你意识到这一点,事情就需要更多的思考。