【发布时间】:2010-08-03 16:37:08
【问题描述】:
假设我在 Informix DB 上有一个表:
create table password_audit (
username CHAR(20),
old_password CHAR(20),
new_password CHAR(20),
update_date DATETIME YEAR TO FRACTION));
我需要 update_date 字段以毫秒为单位(或者可能是秒 - 同样的问题适用),因为在同一天会有多次密码更新。
假设,我有一个夜间批处理作业,想要从 password_audit 表中检索今天的所有记录。
为了提高性能,我想在 update_date 列上放置一个索引。如果我这样做:
CREATE INDEX pw_idx ON password_audit(update_date);
并运行此 SQL:
SELECT *
FROM password_audit
WHERE DATE(update_date) = mdy(?,?,?)
(其中 ?, ?, ? 是我的批处理作业传入的月、日和年)
那么我认为我的索引不会被使用 - 是吗?
我想我需要创建一个类似这样的索引:
CREATE INDEX pw_idx ON password_audit(DATE(update_date));
- 是吗?
【问题讨论】:
标签: database datetime indexing informix