сравнивать два поля в mysql -индексах? - PullRequest
2 голосов
/ 31 марта 2009

Я вполне уверен, что знаю ответ на этот вопрос, но любые идеи были бы чрезвычайно полезны ...

Прежде всего, это MySQL 5.1.32-сообщество. У меня есть большая таблица (миллионы строк, размер не может быть уменьшен - это уменьшенный размер), а соответствующие поля - это два поля даты и времени. Мы назовем это date1 и date2. Мне нужно выполнить запрос выбора, который возвращает все строки (фактически UUID varchar (40), где date1> date2.

SELECT id FROM table1 WHERE date1 > date2;

Запуск слишком длинный (2 минуты). Индексы на самих датах явно ничего не делают. Если не считать разницу между двумя датами и индексацию, какие-нибудь способы уменьшить время запроса? Это кажется таким основным вопросом, но мне всегда интересно, может быть, я просто что-то упускаю ...

Ответы [ 2 ]

1 голос
/ 31 марта 2009

Вы провели подсчет, чтобы увидеть, действительно ли так много данных возвращено, что потребуется столько времени, чтобы вернуть все это?

select count(ID) from table1 WHERE date1 > date2;

Запрос кажется достаточно простым, и ваш объем данных может быть просто проблемой.

0 голосов
/ 25 декабря 2015

Я пытаюсь найти ответ сам.

но я подсказка: указатель на функцию.

Я использовал его на Oracle Dbs.

но в швах MySQL отсутствует поддержка:

Возможно ли иметь функциональный индекс в MySQL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...