Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
Database 组合键相关查询_Database_Composite Key - Fatal编程技术网

Database 组合键相关查询

Database 组合键相关查询,database,composite-key,Database,Composite Key,假设一个表的col1、col2、col3、col4上有一个复合键,当我使用col2时,sql查询索引中的col3没有触发,正在进行全表扫描(原因可能是col2,col3可能不是索引的驱动键) 在这种情况下,无论是在col2上创建单独的索引,col3都是唯一的解决方案(或者)是否有任何方法推动现有索引工作(比如使用提示(或者)其他方法)。假设您的统计数据是最新的,那么dbms不使用索引的可能性很大,因为它认为表扫描速度更快。因为col1似乎没有包含在查询中,所以这是有道理的——索引在这方面没有多大

假设一个表的col1、col2、col3、col4上有一个复合键,当我使用col2时,sql查询索引中的col3没有触发,正在进行全表扫描(原因可能是col2,col3可能不是索引的驱动键)


在这种情况下,无论是在col2上创建单独的索引,col3都是唯一的解决方案(或者)是否有任何方法推动现有索引工作(比如使用提示(或者)其他方法)。

假设您的统计数据是最新的,那么dbms不使用索引的可能性很大,因为它认为表扫描速度更快。因为col1似乎没有包含在查询中,所以这是有道理的——索引在这方面没有多大帮助

修复它的最简单方法是创建另一个索引

create index on your-table-name (col2, col3);
但即使这样也不能保证您的查询会使用它。在小表上,有时扫描整个(小)表比扫描索引然后从表中读取行更有效


提示如何影响查询取决于dbms。有些根本不支持提示。

假设您的统计数据是最新的,dbms很可能不使用索引,因为它认为表扫描更快。因为col1似乎没有包含在查询中,所以这是有道理的——索引在这方面没有多大帮助

修复它的最简单方法是创建另一个索引

create index on your-table-name (col2, col3);
但即使这样也不能保证您的查询会使用它。在小表上,有时扫描整个(小)表比扫描索引然后从表中读取行更有效


提示如何影响查询取决于dbms。有些根本不支持提示。

若要获得好的答案,请编辑您的问题并粘贴到查询中,解释的输出,然后用数据库管理系统标记问题。若要获得好的答案,请编辑您的问题并粘贴到查询中,解释的输出,然后用数据库管理系统标记问题。