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

kebocoran memori dalam skrip php

Kebocoran memori ini hanya akan menjadi masalah jika mematikan skrip dengan kesalahan "memori habis". PHP dengan senang hati akan mengumpulkan sendiri objek/variabel yang tidak digunakan, tetapi kolektor tidak akan menendang sampai harus - pengumpulan sampah bisa menjadi operasi yang sangat mahal.

Adalah normal untuk melihat penggunaan memori meningkat bahkan jika Anda terus-menerus menggunakan kembali objek/variabel yang sama - tidak sampai penggunaan memori melebihi tingkat tertentu kolektor akan menjalankan dan membersihkan rumah.

Saya menduga Anda dapat membuat segalanya berjalan lebih cepat jika Anda mengelompokkan ID pengguna ke dalam grup dan mengeluarkan lebih sedikit pembaruan, mengubah lebih banyak catatan dengan masing-masing. misalnya lakukan hal berikut:

UPDATE user_roundscores SET ursUpdDate=NOW() WHERE ursUserTeamIdFK IN (id1, id2, id3, id4, id5, etc...)

alih-alih melakukannya satu pembaruan per pengguna. Lebih sedikit bolak-balik melalui lapisan antarmuka DB dan lebih banyak waktu di server =berjalan lebih cepat.

Juga, pertimbangkan dampak dari sekarang memperluas ini ke jutaan pengguna, seperti yang Anda katakan dalam komentar. Satu juta pembaruan individual akan membutuhkan waktu yang tidak terlalu lama untuk dijalankan, jadi NOW() tidak akan menjadi "konstanta". Jika dibutuhkan 5 menit untuk menjalankannya secara penuh, maka Anda akan mendapatkan berbagai macam ursUpdDate cap waktu. Anda mungkin ingin mempertimbangkan untuk men-cache satu NOW() memanggil variabel sisi server dan mengeluarkan pembaruan terhadap variabel tersebut:

 SELECT @cachednow :p NOW();
 UPDATE .... SET ursUpDate = @cachednow WHERE ....;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL tambahkan kolom jika tidak ada

  2. Mengapa saya harus menggunakan kunci asing jika saya dapat menggunakan WHERE?

  3. Permintaan perkalian MySQL

  4. parse.com alternatif sumber terbuka untuk backend

  5. Temukan baris yang paling cocok di MySQL (InnoDB)