У меня есть следующая таблица Orders
, с колоннами:ОТБОР Учитывая Подгруппы параметров
order_id
,timestamp
,worker_id
,costumer_id
,start_ts
,end_ts
Что является лучшим способом для запроса базы данных в соответствии с любой комбинацией start_ts
, end_ts
, worker_id
и costumer_id
?
Если start_ts
опущен, я бы:
SELECT *
FROM Orders
WHERE timestamp <= end_ts
AND worker_id = <worker_id>
AND costumer_id = <costumer_id>;
Если worker_id
и costumer_id
опущены вместо:
SELECT *
FROM Orders
WHERE timestamp BETWEEN start_ts AND end_ts;
Единственный способ, который имеет значение, - это индексы, определенные в столбцах. Для индексов, содержащих более одного поля, поля в предложении where должны быть перечислены в том же порядке, в каком они определены в индексе. Это помогает в производительности, но не является незаконным синтаксисом для использования другого порядка. – jleach
@ jdl134679 Хороший комментарий, хотя это не вопрос, im действительно ищет возможности SQL для работы с такими сценариями –