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

MySQL и вложен набор:бавно JOIN (без използване на индекс)

А, просто ми хрумна.

Тъй като вие искате всичко в таблицата, mysql решава да използва пълно сканиране на таблицата, тъй като го смята за по-ефективно.

За да получите някакво използване на ключове, добавете някои филтри, за да ограничите търсенето на всеки ред във всички таблици така или иначе.

Актуализиране на отговора:

Второто ти запитване няма смисъл. Остава да се присъедините към lca, но имате филтър в него, това отрича лявото присъединяване само по себе си. Също така търсите данни в последната стъпка от заявката, което означава, че ще трябва да прегледате всички lt, lc и lca, за да намерите вашите данни. Освен това нямате индекс с най-лявата колона „type“ за местоположенията, така че все още се нуждаете от пълно сканиране на таблицата, за да намерите данните си.

Ако имате някои примерни данни и пример за това, което се опитвате да постигнете, може би ще бъде по-лесно да помогнете.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. проблем в отношенията много към много

  2. Как да нулирате първичния ключ на таблица?

  3. Записване на елементи в MySQL база данни в Scrapy

  4. mysql избира отделни редове в колона със списъци, разделени със запетая

  5. Две колони като първичен ключ в mysql?