pgx-nag
- Query dicek
- ~800
- Temuan
- 23
Alat yang membaca log PostgreSQL, menjalankan EXPLAIN pada query lambat, dan
menandai pemindaian sekuensial pada tabel besar.
Mengapa ini ada
Sebagian besar insiden performa yang saya tangani berakar pada hal yang sama: query yang tidak memakai indeks, dan tidak ada yang menyadari sampai tabelnya besar. Alat ini memindahkan penemuan itu ke kiri.
// Ambil rencana tanpa menjalankan query-nya.
rows, err := db.Query(ctx, "EXPLAIN (FORMAT JSON) "+q)Yang saya tolak
Saya mempertimbangkan membuat ini pengganti driver atau lapisan ORM. Keduanya terlalu mengganggu: alat harus bisa dipakai tanpa menyentuh kode aplikasi. Akhirnya ia hanya membaca log, jadi bisa dipasang atau dilepas kapan saja.
Hasil
Dua puluh tiga query ditemukan melakukan pemindaian sekuensial pada tabel di atas satu juta baris. Delapan belas di antaranya selesai dengan menambah satu indeks; sisanya butuh penulisan ulang query.