Mysql
 sql >> база данни >  >> RDS >> Mysql

Какъв индекс трябва да използвам, когато използвам JOIN на PRIMARY KEY

Тук има две потенциални стратегии за индексиране, в зависимост от това коя от двете таблици се появява от лявата страна на вътрешното съединение (всяка таблица може да се появи от двете страни на съединението). Като се има предвид, че HotelRoom таблицата вероятно съдържа много повече записи от Hotel таблица, предлагам да поставите Hotel маса от лявата страна на съединението. Това би означавало, че Hotel таблицата ще бъде сканирана и индексът, използван за присъединяването към HotelRoom . След това можем да опитаме да използваме следния индекс в HotelRoom :

CREATE INDEX hotel_room_idx ON HotelRoom (HotelId, Deleted, Enabled, Name, RoomId);

Това би трябвало да ускори значително присъединяването, покрива WHERE клауза, а също така обхваща всички колони в избора на HotelRoom . Имайте предвид, че следният опростен индекс също може да бъде много ефективен:

CREATE INDEX hotel_room_idx ON HotelRoom (HotelId, Deleted, Enabled);

Това обхваща само присъединяването и WHERE клауза, но MySQL все пак може да избере да го използва.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. изберете *, който съответства на потребителския пощенски код в таблицата на mysql?

  2. MySQL CURRENT_TIMESTAMP полета се актуализира при всяка актуализация

  3. Logstash INPUT MySQL

  4. mysqli - извикване на грешка fetch_Array към функция-член fetch_array() на mysqli без обект

  5. Как да получите разликата в годините от две различни дати?