Menyoal Menggunakan pangkalan data/sql Jauh Lebih Lambat Daripada Menyoal Pangkalan Data Secara Terus
Walaupun menggunakan pertanyaan yang sama, terdapat percanggahan prestasi yang ketara antara melaksanakan pertanyaan terus menggunakan utiliti psql Postgres dan menggunakan pakej pangkalan data/sql dalam Go permohonan. Percanggahan ini, apabila pertanyaan yang mengambil milisaat dalam psql mengambil masa berpuluh-puluh milisaat dalam Go, boleh dikaitkan dengan faktor tertentu dalam pelaksanaan.
Memahami pangkalan data/Sql Connections
pangkalan data/sql memulakan kumpulan sambungan untuk mewujudkan sambungan ke pangkalan data, dan bukannya membuat sambungan tunggal. Kelewatan awal dalam pelaksanaan pertanyaan dalam pangkalan data/sql adalah kerana kumpulan bermula dengan sambungan terbuka sifar. Pertanyaan pertama mesti mewujudkan sambungan ke pelayan sebelum melaksanakan pernyataan SQL.
Pertanyaan berikutnya juga menghadapi kelewatan kerana sambungan daripada pertanyaan pertama belum dikeluarkan kembali ke kumpulan. Ini bermakna setiap pertanyaan berikutnya perlu membuat sambungan baharu sebelum melaksanakan pertanyaan.
Melepaskan Sambungan Kembali ke Kolam
Untuk menyelesaikan percanggahan prestasi, pastikan sambungan dilepaskan kembali ke kolam selepas setiap pertanyaan. Melepaskan sambungan melibatkan pengekalan nilai pulangan utama db.Query dan seterusnya memanggil kaedah Tutup padanya.
Memulakan Kolam dengan Sambungan Terbuka
Untuk mengurangkan kelewatan awal, panggil Ping pada kolam sambungan serta-merta selepas permulaan. Ini memastikan bahawa sekurang-kurangnya satu sambungan tersedia dalam kumpulan.
Pernyataan Disediakan
Walaupun pertanyaan mudah tanpa hujah dilaksanakan seperti yang diharapkan, pertanyaan dengan argumen dalam pangkalan data/sql sebenarnya mencipta dan melaksanakan kenyataan yang disediakan di bawah hud. Penyata yang disediakan menawarkan faedah prestasi apabila melaksanakan pertanyaan yang sama beberapa kali dengan hujah yang berbeza.
Mengatasi Kependaman Tambahan
Selain pengurusan sambungan dan pernyataan yang disediakan, mungkin terdapat faktor kependaman tambahan untuk dipertimbangkan:
Oleh menangani faktor-faktor ini dan melaksanakan cadangan yang diberikan, prestasi pertanyaan menggunakan pangkalan data/sql boleh dipertingkatkan dengan ketara, menjadikannya setanding dengan menanyakan pangkalan data secara langsung.
Atas ialah kandungan terperinci Mengapa pangkalan data Go/Pertanyaan sql Saya Jauh Lebih Lambat Daripada Pertanyaan psql Postgres Langsung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!