Является ли преобразование даты в число более производительным в запросах? - PullRequest
0 голосов
/ 03 октября 2019

Я хочу повысить производительность запросов к подмножеству на основе даты или даты и времени.

Интересно, будет ли запрос иметь более высокую производительность, если я создам второй столбец рядом с типом даты или типом даты / времени? столбец, хранящий дату в виде числа.

int (длиной 4 байта) должно быть достаточно, и формат будет YYYYMMDD. Я предполагаю, что индексирование чисел более эффективно, но я не уверен, поскольку технология БД, вероятно, оптимизирует типы для индексирования.

Я понимаю, что date/datetime-types хранятся как числа, а не контрольная дата. Таким образом, предлагаемая альтернатива позволит избежать накладных расходов на сопоставление с контрольной датой.

1 Ответ

0 голосов
/ 03 октября 2019

Используйте встроенную DATE или DATETIME или TIMESTAMP или любую другую вещь, которую поддерживает ваш DMBS. Он почти наверняка будет использовать целое число или серию целых чисел внутри (по отношению к некоторой эпохе), но в основном вам это не нужно и не должно волновать. Любая разница в производительности будет микроскопической по сравнению с проблемами, которые вы можете вызвать из-за проблем в вашем дизайне и вычисляя строку из даты, когда вы рискуете ухудшить ситуацию или допустить ошибки.

Если вы беспокоитесь о производительности, сфокусируйтесьособенно при соответствующей индексации и использовании кластеризации при необходимости.

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