Un paio di appunti che dimentico sempre quando si lavora con il connector per MySQL:
- La gestione del connection pooling non funziona, ovvero non è in grado di capire se una connection non esplicitamente chiusa possa essere riusata (bug documentato #31996).
MySqlConnection cn;
for (int i = 0; i < 10; i++)
{
cn = new MySqlConnection([my_MySQLConnectionString]);
cn.Open();
cn = null;
GC.Collect();
//cn.Close();
}
alla fine mi trovo con 10 connection aperte, con il rischio (o meglio la certezza) di raggiungere il massimo numero di connessioni consentite dal server.
Finché non lo sistemano, SE lo sistemano, bisogna disattivare il connection pooling tramite connection string, impostando 'Pooling=false'
- I parameters, di default vanno indicati con '?', se si vuole utilizzare il simbolo '@' come "Parameter Marker" (e quindi rendere il codice scritto compatibile anche con SQL Server) è necessario specificare il parametro 'OldSyntax=true' in connection string