Скажем, у меня есть таблица в БД Informix:
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));
- это верно?