лучшее решение для базы данных для индексации нескольких столбцов даты и времени - PullRequest
0 голосов
/ 04 декабря 2018

Я создаю систему управления обязанностями работников, база данных будет содержать следующие столбцы


ID |STAFF_ID |DUTY_ID |DUTY_START |DUTY_END

Эта система должна знать, сколько сотрудников работает между заданным временем.

В настоящее время я использую mysqli, который кажется медленным, так как данные таблицы увеличиваются.

Я ищу подходящую услугу, которая может ежедневно обрабатывать 500 000 записей и выполнять поиск по индексам DUTY_START и DUTY_END.

1 Ответ

0 голосов
/ 05 декабря 2018

Начальные и конечные диапазоны сложно оптимизировать в больших таблицах.

Возможно, лучшее решение для этой ситуации - сделать что-то действительно плохое - отделить дату.(Да, 2 ошибки могут составить право на этот раз .)

ID | STAFF_ID | DUTY_ID | date | START_time | END_time

Некоторые проблемы:

  • Если смена охватывает полночь, сделайте 2 строки.
  • Иметь индекс по date или, по крайней мере, начинаться с date.Тогда даже если запрос должен сканировать все записи за рассматриваемый день, по крайней мере, он будет намного меньше, чем сканирование всей таблицы.(Все другие «очевидные решения» не лучше, чем сканирование половина таблицы.)

Если вы хотите обсудить и обсудить это далее, пожалуйста, предоставьте заявление SELECT) на основе вашей «схемы» или моей.Не беспокойтесь о производительности;мы можем обсудить, как их улучшить.

...