Какой индекс должен быть создан?
Я следую онлайн-курс по базе данных, и я получил этот вопрос.
Предположим, у меня есть таблицы 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
потому что, скорее всего, в ближайшем будущем вы преобразуете этот запрос из перекрестного соединения во внутреннее или левое соединение