Menganalisis Prestasi Pangkalan Data Django dengan Log Pertanyaan SQL
Pemantauan prestasi pangkalan data yang berkesan adalah penting untuk mana-mana aplikasi Django. Panduan ini memperincikan cara untuk log semua pertanyaan SQL yang dilaksanakan oleh aplikasi anda, memberikan cerapan berharga untuk penalaan prestasi dan penyahpepijatan.
Merakam dan Melog Semua Pertanyaan SQL
Proses ini melibatkan konfigurasi tetapan LOGGING
dalam fail settings.py
anda. Berikut ialah pecahan langkah demi langkah:
connection
: Import modul yang diperlukan untuk mengakses senarai pertanyaan yang dilaksanakan:<code class="language-python">from django.db import connection</code>
LOGGING
: Tambah atau ubah suai tetapan LOGGING
dalam settings.py
seperti berikut:<code class="language-python">LOGGING = { 'version': 1, 'filters': { 'require_debug_true': { '()': 'django.utils.log.RequireDebugTrue', } }, 'handlers': { 'console': { 'level': 'DEBUG', 'filters': ['require_debug_true'], 'class': 'logging.StreamHandler', } }, 'loggers': { 'django.db.backends': { 'level': 'DEBUG', 'handlers': ['console'], } } }</code>
Memahami Konfigurasi
handlers
: Pengendali console
mengeluarkan mesej log ke konsol. level
ditetapkan kepada DEBUG
untuk menangkap semua mesej peringkat nyahpepijat. Penapis require_debug_true
memastikan pengelogan hanya berlaku apabila DEBUG = True
dalam tetapan anda.
loggers
: Pembalak django.db.backends
disasarkan, kerana di sinilah log interaksi pangkalan data direkodkan. Ia dikonfigurasikan untuk menggunakan pengendali console
dan log pada tahap DEBUG
.
Contoh Lengkap
Untuk melihat pertanyaan, anda boleh memasukkan perkara berikut di lokasi yang sesuai (cth., arahan pengurusan atau ujian):
<code class="language-python">from django.db import connection # ... (LOGGING configuration from above) ... print(connection.queries)</code>
Pendekatan pengelogan komprehensif ini menyediakan rekod terperinci semua interaksi pangkalan data, membantu dalam mengenal pasti kesesakan prestasi dan menyahpepijat isu berkaitan pangkalan data. Ingat untuk tetapkan DEBUG = True
dalam settings.py
anda agar pengelogan ini berfungsi dengan betul. Pertimbangkan untuk menggunakan penyelesaian pembalakan yang lebih mantap untuk persekitaran pengeluaran.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Log Semua Pertanyaan SQL dalam Aplikasi Django Saya untuk Analisis Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!