У меня большая база данных, которая используется для записи всех происходящих событий.Это похоже на систему продажи билетов.Теперь, поскольку я хранил данные с другим статусом, чтобы знать действие над определенным тикетом в одном столбце, я должен использовать несколько «или» в выражении, чтобы узнать текущий статус в тикете.
Например:1 для открытого билета, 2 для подтверждения, 3 для закрытого события.Теперь запрос для выбора всех событий с 1,2,3 будет:
SELECT *
FROM tbl_name
WHERE status IN (1, 2, 3)
AND event_id = 1;
Я создал индексы для поля id
, а другой индекс event_status
для event_id
и status
field.
Теперь, когда я запускаю EXPLAIN для этого запроса, он не использует индекс event_status, а использует другой существующий индекс, такой как event_status_dept, который состоит из event_id, status и отдела.
Если яиспользуйте только два поля в выражении IN i.e 'IN (1,2)'
, он использует индекс event_status
, в противном случае он использует другой индекс, то есть event_status_dept.Я не знаю, что не так с моим заявлением.