sql >> Databasteknik >  >> RDS >> Mysql

Hur man kommer åt MySQL från flera trådar samtidigt

Som underhållare av en ganska stor C-applikation som gör MySQL-anrop från flera trådar kan jag säga att jag inte har haft några problem med att helt enkelt göra en ny anslutning i varje tråd. Några varningar som jag har stött på:

  • Redigera:det verkar som om denna punkt bara gäller versioner <5.5; se den här sidan för din lämpliga version : Som du säger att du redan gör, länka mot libmysqlclient_r .
  • Ring mysql_library_init() (en gång, från main() ). Läs dokumenten om användning i flertrådade miljöer för att se varför det är nödvändigt.
  • Skapa en ny MYSQL struktur med mysql_init() i varje tråd. Detta har bieffekten att anropa mysql_thread_init () till dig. mysql_real_connect() som vanligt inuti varje tråd, med dess trådspecifika MYSQL-struktur.
  • Om du skapar/förstör många trådar vill du använda mysql_thread_end() i slutet av varje tråd (och mysql_library_end() i slutet av main() ). Det är bra praxis i alla fall.

Dela i princip inte MYSQL strukturer eller något skapat specifikt för den strukturen (dvs. MYSQL_STMT s) och det kommer att fungera som du förväntar dig.

Det här verkar vara mindre arbete än att skapa en anslutningspool för mig.



  1. Hur man flyttar sedan radera fält i MySQL

  2. Hur man tar bort efterföljande blanksteg i MySQL

  3. Hur man ändrar kolumner eller genererar Alter-skript genom att använda GUI i SQL Server - SQL Server / T-SQL självstudie del 38

  4. SQLSTATE[HY000] [1698] Åtkomst nekad för användaren 'root'@'localhost'