Info su provider mysql

giovedì 06 maggio 2004 - 11.04

trinity Profilo | Guru

Ragazzi sapete quale è il migliore è + potete provider di connessione diretta ai database mysql con vb net e ado.net? Non mi interessa che sia free o a pagamento. Basta che funzioni e che sia il migliore.

ciao e grazie

Brainkiller Profilo | Guru

Trinity, non ce n'è uno migliore... ognuno tira l'acqua al suo mulino quindi se uno produce un Data Provider sicuramente è il suo il più veloce, potente ,ecc. però chiaramente ce ne sono anche altri.
E' come chiedere qual è la CPU più veloce ? Se chiedi a Intel sono le sue, se chiedi ad AMD sono le sue e così via. Come si fa allora per stabilirlo ?

Ti compri tutti i Data Provider che ci sono in circolazione e fai dei test/benchmark per stabilire il migliore. Del resto bisogna fare così come con le CPU.

Ho sentito però recentemente parlare di un molto buono data provider che trovi qui:
http://www.crlab.com/

cerdo a pagamento.

ciao
david

trinity Profilo | Guru

Ti volevo chiedere una cosa, ma sostanzialmente che differenza c'è tra un provider mysql net come quello della corelab e l'odbc net ? mi potresti spiegare perchè ho dei dubbi.

ciao

Brainkiller Profilo | Guru

L'ODBC è un'interfaccia API standard aperta per accedere a un database. L'applicazione che utilizza l'ODBC manda determinati comandi SQL al driver ODBC e questo li trasforma in comandi SQL da mandare al database sottostante. Quindi è un livello di astrazione aggiuntivo. Però passando da questo layer aggiuntivo hai un po' di perdita di performance. Infatti è stato sostituito con l'OLEDB che è una tecnologia Microsoft, sono in praticamente componenti COM che si collegano direttamente al database, sono molto più performanti.
Poi ci sono i .NET data provider, per esempio quello di MySQL che usa direttamente la libreria libmySQL.dll per accedere anch'essa direttamente al DB dando più prestazioni.

ciao
david

lake Profilo | Newbie

Salve,
e' da molto che sono alla ricerca di un buon provider per connettermi con mysql.

System.Data.Odbc (free):
Abbastanza veloce nella connessione, abbastanza veloce a leggere pochi record. Lento con molti risultati da leggere.

ByteFX.Data.MySqlClient (free):
Ora siamo alla versione 0,76, ed è stato acquistato da mysql.
Le precenti versioni erano molto instabili, con molti fastidiosi bug (es cpu 100%) che lo rendevano inutilizzabile in un ambiente con molti utenti.
L'attuale versione ha un bug che rende inutilizzabile il pooling (lascia aperte le connessioni, rendendo di fatto la connessione molto lenta), abbastanza stabile.
Lento nel connettersi (se non si usa pooling), veloce con molti record.

MySQLDriverCS (free):
L'ho usato molto prima di passare a corelab.
Stabile ma anche lento nelle connessioni, veloce con molti record.

CoreLab.MySql (90€):
E' il più veloce, vale sicuramente il prezzo della licenza.
Devo ancora testarlo in un ambiente di produzione, ma presto lo farò.
La connessione è molto veloce (quasi il doppio rispetto a odbc), velocissimo a leggere pochi e tanti record (da 3 a 4 volte rispetto agli altri driver nativi)

Ecco i risultati di alcuni test con una query del tipo: SELECT str FROM table WHERE ID > 20000 LIMIT 0,XXX;

100 Query consecutive singolo record
- [0.15 s] System.Data.Odbc
- [1.17 s] ByteFX.Data.MySqlClient
- [0.82 s] MySQLDriverCS
- [0.09 s] CoreLab.MySql

100 Query consecutive 10 record
- [0.32 s] System.Data.Odbc
- [1.62 s] ByteFX.Data.MySqlClient
- [0.48 s] ByteFX.Data.MySqlClient (Pooling=true)
- [0.93 s] MySQLDriverCS
- [0.18 s] CoreLab.MySql

100 Query consecutive 100 record
- [2.22 s] System.Data.Odbc
- [3.23 s] ByteFX.Data.MySqlClient
- [2.76 s] ByteFX.Data.MySqlClient (Pooling=true)
- [1.78 s] MySQLDriverCS
- [0.87 s] CoreLab.MySql


Comunque fate anche voi dei test poichè soprattutto per quanto riguarda bytefx ho ottenuto risultati molto contrastanti da macchina a macchina (in questi test lento, in altri molto più veloce di mysqldrivercs), sicuramente è un buon driver ma almeno per ora da non utilizzare in server affollati.

Spero che questo possa esservi stato di aiuto.

Saluti

Brainkiller Profilo | Guru

Ciao lake,
benvenuto e complimenti peri benchmarks che hai fatto e la volontà con cui li hai fatti. Effettivamente non è cosa semplice provare 4 data providers diversi.
Se sei interessato e vuoi aggiungere qualche riga di commento e/o qualche grafico o altri dati relativi a operazioni di INSERT/DELETE/UPDATE con i differenti Data Providers, si può pubblicare il tuo contributo sottoforma di Tip o Articolo, separatamente o ad integrazione dell'articolo in Home Page.

ciao
david

lake Profilo | Newbie

Con piacere.

Purtroppo sono stato costretto a fare questi testi quando ho notato che la cpu era quasi tutta impegnata a connettersi a mysql!!!

Non ho ancora fatto test con update comunque se vuoi ti posso mandare anche il codice per ripetere i test in locale, non è molto complicato....

trinity Profilo | Guru

mandami i test e te li provo io con update in locale

ciao
Fabio
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5