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

Daftar Proses MySql diisi dengan Entri Tidur yang mengarah ke Terlalu Banyak Koneksi?

Pada dasarnya, Anda mendapatkan koneksi dalam status Tidur ketika :

  • skrip PHP terhubung ke MySQL
  • beberapa kueri dijalankan
  • lalu, skrip PHP melakukan beberapa hal yang membutuhkan waktu
    • tanpa memutuskan sambungan dari DB
  • dan, akhirnya, skrip PHP berakhir
    • yang artinya terputus dari server MySQL

Jadi, Anda biasanya berakhir dengan banyak proses dalam status Tidur ketika Anda memiliki banyak proses PHP yang tetap terhubung, tanpa benar-benar melakukan apa pun di sisi database.

Ide dasarnya, jadi :pastikan Anda tidak memiliki proses PHP yang berjalan terlalu lama -- atau paksa mereka untuk memutuskan sambungan segera setelah mereka tidak perlu lagi mengakses database.


Hal lain yang sering saya lihat ketika ada beban di server :

  • Semakin banyak permintaan yang datang ke Apache
    • yang berarti banyak halaman yang harus dibuat
  • Setiap skrip PHP, untuk menghasilkan halaman, terhubung ke DB dan melakukan beberapa kueri
  • Kueri ini membutuhkan lebih banyak waktu, karena beban pada server DB meningkat
  • Yang berarti lebih banyak proses terus menumpuk

Solusi yang dapat membantu adalah mengurangi waktu yang dibutuhkan kueri Anda -- mengoptimalkan kueri yang paling lama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sql menarik baris untuk baris berikutnya atau sebelumnya dari baris saat ini

  2. Algoritma yang mencari item terkait berdasarkan tag umum

  3. MySQL memeriksa apakah ada tabel tanpa melempar pengecualian

  4. Dapatkan tanggal terbaru dari data MySQL yang dikelompokkan

  5. MySQL untuk mengisi tanggal yang hilang saat menggunakan GROUP BY DATE(table.timestamp) tanpa bergabung di tabel sementara