Apakah Anda menggunakan koneksi persisten? Berapa banyak koneksi tidur yang Anda miliki? Berapa jumlah maksimum koneksi yang terkonfigurasi oleh DB Server Anda?
Untuk memeriksa berapa banyak koneksi tidur yang baru saja Anda jalankan:
show full processlist;
Untuk melihat menjalankan max_connections:
show variables like 'max_connections';
Saya pikir koneksi tidur tidak menjadi masalah, mysqld akan memutuskan koneksi tidur berdasarkan 2 nilai:
interactive_timeout wait_timetout
Keduanya secara default 28800 detik (8 jam).
Anda dapat mengatur opsi ini di my.cnf (lokasi file ini berbeda di berbagai OS dan DB, percona, mysql, dll)
Juga lihat jawaban ini dari Administrator Database: https://dba.stackexchange.com/a/1559 dan jika Anda ingin tahu lebih banyak tentang cara men-debug asal koneksi tidur, periksa artikel yang bagus ini: https: // www. percona.com/blog/2007/02/08/debugging-sleeping-connections-with-mysql/
"Jika koneksi Anda persisten (dibuka melalui mysql_pconnect), Anda dapat menurunkan angka-angka ini ke sesuatu yang masuk akal seperti 600 (10 mnt) atau bahkan 60 (1 mnt). Atau, jika aplikasi Anda berfungsi dengan baik, Anda dapat meninggalkan default. Ini adalah terserah kamu."
Cobalah untuk menjalankan pengindeks dari konsol untuk melihat apakah itu menghasilkan beberapa kesalahan:
php shell/indexer info # this will output the list of indexes then
php shell/indexer --reindex {index_name}