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

Оптимизиране на MySQL заявки с IN оператор

Индексът на categoryId няма да помогне в този случай, IN (...) заявките така или иначе ще доведат до сканиране на последователност вместо търсене в индекс.

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

Например, можете да създадете помощна таблица items_category_groups(hash, item_id) и след клиентска заявка за множество категории хеширайте техните комбинирани идентификатори и потърсете тази таблица. Ако не бъде намерен, направете скъпо запитване и попълнете тази таблица. Ако се намери, направете евтина заявка, съединяваща тези таблици. Други инструменти за кеширане като memcached също ще работят.




  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 GROUP BY и COUNT

  2. MYSQL Query - Вземете публикациите на текущия потребител и на потребителя, който той следва

  3. как да създадете db mysql с sqlalchemy

  4. Свържете се с MySQL, като използвате SSH тунелиране в node-mysql

  5. ВМЕСЕТЕ текущата дата или час в MySQL