Какой индекс должен быть создан?

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

Предположим, у меня есть таблицы USER, CHECKIN и PLACE.

USER (uid, uname, ucity), uid является первичным ключом.

PLACE (pid, pname, pxcoord, pycoord, pcity), pid - это первичный ключ.

CHECKIN (uid, pid, cdate, ctime), (uid, cdate, ctime) является первичным ключом.

Запрос

select c.uid, c.pid c.cdate
from user u join checkin c join place p 
where ucity='NewYork' and pcity='Chicago'

Разрешается создавать только две индексные структуры, что является лучшим выбором и почему?

1 ответ

Решение

Именно для этого запроса создайте индекс ucity и один на pcity,

Кроме того, если вам разрешено создавать до 2 индексов, возможно, вам также разрешено изменять один. Если это так, измените первичный ключ на CHECKIN таблица также содержит pid, сразу после uidпотому что, скорее всего, в ближайшем будущем вы преобразуете этот запрос из перекрестного соединения во внутреннее или левое соединение

Другие вопросы по тегам