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

Django admin MySQL бавно INNER JOIN

Внедрих корекция за INNER JOIN за Django ORM, тя ще използва STRAIGHT_JOIN в случай на поръчка с INNER JOIN. Говорих с основните разработчици на Django и засега решихме да направим това като отделен бекенд. Така че можете да го проверите тук:https://pypi.python.org/pypi /django-mysql-fix

Има обаче едно друго решение. Използвайте фрагмент от отговора на Джеймс, но заменете select_related с:

qs = qs.select_related('').prefetch_related('wheel', 'dealer', 'category')

Той ще отмени INNER JOIN и ще използва 4 отделни заявки:1 за извличане на автомобили и 3 други с car_id В (...).

АКТУАЛИЗИРАНЕ: Намерих още едно решение. След като посочите null=True във вашето поле ForeignKey, Django ще използва LEFT OUTER JOIN вместо INNER JOIN. LEFT OUTER JOIN работи без проблеми с производителността в този случай, но може да се сблъскате с други проблеми, за които все още не съм наясно.



  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. Създаване на таблица с помощта на vb.net, mysql

  3. Най-добрият начин за съхраняване на времеви интервал в MySQL база данни?

  4. JSON_OBJECT() – Създайте JSON обект от списък с двойки ключ/стойност в MySQL

  5. Как да използвате GROUP_CONCAT в CONCAT в MySQL