Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Django admin MySQL lambat INNER JOIN

Saya telah menerapkan perbaikan untuk INNER JOIN untuk Django ORM, ini akan menggunakan STRAIGHT_JOIN jika memesan dengan INNER JOIN. Saya berbicara dengan pengembang inti Django dan kami memutuskan untuk melakukan ini sebagai backend terpisah untuk saat ini. Jadi Anda dapat memeriksanya di sini:https://pypi.python.org/pypi /django-mysql-fix

Namun, ada satu solusi lain. Gunakan cuplikan dari jawaban James, tetapi ganti select_related dengan:

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

Ini akan membatalkan INNER JOIN dan menggunakan 4 kueri terpisah:1 untuk mengambil mobil dan 3 lainnya dengan car_id DI (...).

PERBARUI: Saya telah menemukan satu solusi lagi. Setelah Anda menentukan null=True di bidang ForeignKey Anda, Django akan menggunakan LEFT OUTER JOIN daripada INNER JOIN. LEFT OUTER JOIN berfungsi tanpa masalah kinerja dalam kasus ini, tetapi Anda mungkin menghadapi masalah lain yang belum saya ketahui.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa arti ikon kolom meja kerja mysql?

  2. Tabel yang tujuan utamanya adalah menentukan subset dari tabel lain

  3. Cara menanyakan sql dengan catatan aktif untuk tanggal antara waktu yang ditentukan

  4. Apache - Layanan MySQL terdeteksi dengan jalur yang salah. / Port sudah digunakan

  5. Neo4j - Impor Data dari File CSV menggunakan Cypher