我想知道是否有任何选项可以改进和优化我的查询。我正在为我们的员工导入计划数据,并且需要删除旧数据,当该数据存在于此代理和日期时。原因是,代理商可能每天都不存在(因为他们离开了公司)而且可能是,我们上传了更新的报告(最近的时间表更改)。
这就是我目前有这个问题的原因:
9/17/2015 9:11:00 AM
9/17/2015 9:12:00 AM
9/17/2015 9:13:00 AM
9/17/2015 9:14:00 AM
9/17/2015 9:15:00 AM
9/17/2015 9:16:00 AM
9/17/2015 9:17:00 AM
9/17/2015 9:18:00 AM
此组合适用于报告的每个代理以及报告中的每一天。我上传了一个创建了5780天/代理组合。此查询占用了我当前的小表,大约需要5分钟才能执行。
我想知道是否有人知道如何改进这件事。
答案 0 :(得分:1)
如果您有这样的表:
create table t123
( id int not null,
date datetime not null,
myThing varchar(10) not null
);
之后您添加了这样的索引:
ALTER TABLE t123 ADD INDEX (id,date); -- add an index after the fact
然后在表t123
上删除与您类似的内容将会像我想象的那样快速执行。 然而它需要在整个过程中保持指数,这是需要考虑的因素。
所有索引更改都需要仔细权衡。更快访问的好处,代价是减慢插入/更新/删除的速度。
的手册页