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

Haruskah saya menggunakan pernyataan yang disiapkan untuk MySQL di PHP PERFORMANCE-WISE?

Sejarah

Ini adalah jawaban Stackoverflow pertama saya. Banyak yang telah berubah sejak itu, khususnya penghentian dan penghapusan API mysql. Bahkan jika Anda masih menggunakan php 5.6, api mysql_* tidak boleh digunakan. Sekarang PDO atau mysqli adalah satu-satunya pilihan untuk dipilih. PDO lebih baik untuk banyak alasan.

Apakah pernyataan yang disiapkan di-cache di seluruh pemuatan halaman?

Pernyataan siap yang sama tidak akan digunakan di antara pemuatan halaman. Itu harus disiapkan setiap saat. Jika memeras setiap milidetik yang besar penting, prosedur tersimpan mungkin merupakan ide yang bagus (dengan asumsi Anda memiliki kueri yang rumit).

Untuk sisipan besar (ribuan baris) Peningkatan yang lebih besar mungkin dapat diperoleh dengan membuang data Anda ke dalam file teks dan memuatnya dengan LOAD DATA IN FILE . Ini jauh lebih cepat daripada serangkaian sisipan.

Jawaban asli

Yang benar adalah terkadang mysqli lebih cepat dan di lain waktu mysql api lebih cepat. Tapi perbedaannya benar-benar sangat kecil. Jika Anda melihat salah satu tes kinerja di web, perbedaannya sebenarnya hanya 10 - 20 milidetik. Cara terbaik untuk meningkatkan kinerja adalah dengan mengoptimalkan desain tabel.

Banyak pengujian yang 'membuktikan' api lama lebih cepat dengan mudah lupa bahwa untuk keamanan maksimum mysql_real_escape_string() harus dipanggil untuk setiap variabel yang digunakan dalam kueri.

Kueri di-cache oleh server, jika dan hanya jika data pada semua tabel yang digunakan dalam kueri tetap tidak berubah.

Tunggu pembaruan lain dengan nomor sebenarnya



  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 join memberikan baris duplikat

  2. Kesalahan sintaks dengan meniru buat pengguna jika tidak ada

  3. Pulihkan database mysql dari file .frm

  4. menentukan classpath untuk jython mandiri

  5. Fungsi MySQL RAND() – Menghasilkan Angka Acak di MySQL