Индексы по заявке SQL - PullRequest
       37

Индексы по заявке SQL

0 голосов
/ 12 февраля 2020

Новый для изучения SQL и просто интересующийся тем, как работают индексы, например (первичные ключи выделены жирным шрифтом):

  • Hotel ( hotelNo , hotelName, city),
  • Номер ( номерNo, номер отеля , тип, цена),
  • Бронирование ( hotelNo, номер гостя, dateFrom , dateTo, номерNo),
  • Гость ( guestNo , guestName, guestAddress)

Запрос:

SELECT 
    r.roomNo, r.type, r.price 
FROM 
    Room r, 
    Booking b, Hotel h 
WHERE 
    r.roomNo = b.roomNo 
    AND b.hotelNo = h.hotelNo 
    AND h.hotelName = "Hilton" 
    AND r.price > 200

Может кто-нибудь объяснить, как я использовал бы любую индексацию для улучшения запроса представление? Я думал просто отсортировать его по цене, чтобы серверу SQL не приходилось проверять каждую строку вручную, но есть ли другие индексы, на которые следует опираться? Кроме того, всегда ли первичные ключи являются кластерными индексами?

1 Ответ

0 голосов
/ 12 февраля 2020

Я не собираюсь прямо отвечать на ваш вопрос, но постараюсь дать общее представление, чтобы вы могли самостоятельно улучшить производительность запросов к базе данных в зависимости от вариантов использования вашего приложения (поскольку они могут различаться):

  • Нет необходимости индексировать ваш первичный ключ
  • Указывать в тех полях, какие поля могут / будут необходимы для частого поиска / запроса в вашей базе данных.
  • При индексации любого столбец, попробуйте убедиться, что значения столбцов мало распространены (хотя это не так важно)
  • Попробуйте индексировать по нескольким столбцам, если это сделано, нет необходимости индексировать эти столбцы в один
  • Необходимо поддерживать порядок индексации в вашем запросе после предложения where, в противном случае результат окажет негативное влияние на БД.
  • Кроме того, имейте в виду, что индексирование также потребляет ваше пространство БД! Хорошая индексация может помочь повысить производительность, в то время как плохая индексация приведет к снижению производительности вашей системы.

Дополнительные примечания можно проверить по этой ссылке Какие столбцы обычно дают хорошие показатели?

Счастливого индексирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...