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

MySQL InnoDB PILIH...BATAS 1 UNTUK PEMBARUAN VS PEMBARUAN ... BATAS 1

Karena saya tidak mendapatkan jawaban, saya mulai melakukan benchmarking. Kriteria saya adalah sebagai berikut:

  • 20.000 kode yang dibuat sebelumnya
  • Penggunaan Apache ab perintah dengan 20.000 permintaan, 100 konkurensi:ab -n 20000 -c 100
  • Servlet -> EJB (JPA 2.0 EclipseLink, JTA) untuk melakukan pembaruan dalam DB (karena akan melalui tindakan JSF dalam situasi nyata)
  • 2 versi Servlet, satu dengan opsi 1 (PILIH ... UNTUK UPDATE ), dan satu lagi dengan opsi 2 (PERBARUI ... BATAS 1)
  • Hentikan Glassfish, tekan Servlet yang diuji secara manual 5 kali untuk menghangatkannya, setel ulang semua ke NULL ke user_id
  • Tes dijalankan masing-masing 3 kali dan diberikan rata-rata

Hasil:

PILIH ... UNTUK PEMBARUAN; PERBARUI ... :

Concurrency Level:      100
Time taken for tests:   758.116 seconds
Complete requests:      20000
Failed requests:        0
Write errors:           0
Row updated:            20000

PERBARUI.... BATAS 1:

Concurrency Level:      100
Time taken for tests:   773.659 seconds
Complete requests:      20000
Failed requests:        0
Write errors:           0
Row updated:            20000

Jadi setidaknya di sistem saya, opsi dengan 2 kueri tampaknya lebih efisien daripada satu kueri. Saya tidak mengharapkan itu :)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. host 'localhost' tidak diizinkan untuk terhubung ke server MySQL ini (#1130)

  2. MySQL Pilih Where In Many to Many

  3. Buat Indeks di mysql tidak berfungsi

  4. Setara dengan Java untuk mysql_real_escape_string() PHP

  5. MySql:MyISAM vs. Inno DB!