相关疑难解决方法(0)

为只有一个匹配的Between查询索引SQL?

我们有一个包含超过两百万行的表,其中对它的所有查询都是一个使用Column1和的查找Column2.此外,只有一个可能的结果.例如...

Col1     Col2
1        5
6        10
11       15

select * from table1 where 8 between Col1 and Col2
Run Code Online (Sandbox Code Playgroud)

我目前在Col1和上有一个唯一的聚簇索引Col2.到目前为止,我一直无法弄清楚如何进一步调整查询和索引以最小化处理的行.执行计划目前报告在找到一个唯一正确答案时处理的成本几乎为0.5和113k行.

我可以忽略哪些选项?

根据要求,当前执行计划的一些细节:

Operation
 Clustered Index Seek
Predicate
 CONVERT_IMPLICIT(bigint,[@2],0)<=[Col2]
Seek Predicate
 Seek Keys[1]: End: Col1 <= Scalar Operator(CONVERT_IMPLICIT(bigint,[@1],0))
Run Code Online (Sandbox Code Playgroud)

sql indexing between

11
推荐指数
2
解决办法
1522
查看次数

为什么MySQL不使用索引来进行比较?

当我意识到查询的这一部分正在进行全表扫描时,我正在尝试优化更大的查询并遇到这个问题,考虑到所讨论的字段是主键,在我看来这是没有意义的.我认为 MySQL Optimizer会使用索引.

这是表格:


CREATE TABLE userapplication (
  application_id int(11) NOT NULL auto_increment,
  userid int(11) NOT NULL default '0',
  accountid int(11) NOT NULL default '0',
  resume_id int(11) NOT NULL default '0',
  coverletter_id int(11) NOT NULL default '0',
  user_email varchar(100) NOT NULL default '',
  account_name varchar(200) NOT NULL default '',
  resume_name varchar(255) NOT NULL default '',
  resume_modified datetime NOT NULL default '0000-00-00 00:00:00',
  cover_name varchar(255) NOT NULL default '',
  cover_modified datetime NOT NULL default '0000-00-00 00:00:00',
  application_status tinyint(4) NOT NULL …
Run Code Online (Sandbox Code Playgroud)

mysql optimization

8
推荐指数
2
解决办法
1万
查看次数

标签 统计

between ×1

indexing ×1

mysql ×1

optimization ×1

sql ×1