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

Cara mengakses MySQL dari beberapa utas secara bersamaan

Sebagai pengelola aplikasi C yang cukup besar yang membuat panggilan MySQL dari banyak utas, saya dapat mengatakan bahwa saya tidak memiliki masalah dengan hanya membuat koneksi baru di setiap utas. Beberapa peringatan yang saya temukan:

  • Sunting:sepertinya butir ini hanya berlaku untuk versi <5.5; lihat halaman ini untuk versi yang sesuai : Seperti yang Anda katakan sudah Anda lakukan, tautkan ke libmysqlclient_r .
  • Hubungi mysql_library_init() (sekali, dari main() ). Baca dokumen tentang penggunaan di lingkungan multithread untuk mengetahui mengapa hal itu diperlukan.
  • Buat MYSQL baru struktur menggunakan mysql_init() di setiap utas. Ini memiliki efek samping dari memanggil mysql_thread_init() untuk kamu. mysql_real_connect() seperti biasa di dalam setiap utas, dengan struct MYSQL khusus utasnya.
  • Jika Anda membuat/menghancurkan banyak utas, Anda sebaiknya menggunakan mysql_thread_end() di akhir setiap utas (dan mysql_library_end() di akhir main() ). Bagaimanapun, ini adalah latihan yang baik.

Pada dasarnya, jangan bagikan MYSQL struct atau apa pun yang dibuat khusus untuk struct itu (yaitu MYSQL_STMT s) dan itu akan berfungsi seperti yang Anda harapkan.

Ini sepertinya kurang berhasil daripada membuat kumpulan koneksi untuk saya.



  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 Query untuk menjumlahkan jumlah dalam kolom (bulan)

  2. Cara menghitung perbedaan tanggal tidak termasuk akhir pekan dan hari libur di MySQL

  3. Mensimulasikan MySql OLD_PASSWORD di .NET atau MS SQL?

  4. SQL CREATE DATABASE Syntax – Didaftarkan oleh DBMS

  5. Bagaimana saya bisa mengaktifkan log kueri lambat MySQL di server saya?