2009-05-07 8 views
7

Ultimamente ho preferito utilizzare pipe denominate (opzione --enable-named-pipes) in MySQL in esecuzione su Windows e connettersi tramite il driver del connettore .NET. È spesso consigliato per motivi di sicurezza, ma una cosa che mi permette di fare è connettermi con "." come stringa di connessione e sviluppare sul mio PC e distribuire al server senza dover cambiare la stringa di connessione (per puntare l'host del server invece della mia copia del DB).MySQL ha chiamato pipe su Windows: best practice più veloci o cattiva idea?

Oltre a ciò, nella mia esperienza ci sono alcuni ritardi che ho attribuito a un vantaggio di latenza su TCP. Alcuni riferimenti che ho trovato on-line eco che:

stavamo testando con successo MySQL 5.0 utilizza named pipe, e ciò che un aumento in termini di velocità! 50% nel caso di questo grande progetto In primo luogo, può essere una buona idea di utilizzare il driver jConnector ultima da MySQL
http://www.waltercedric.com/component/content/article/1217.html

In semplici test di performance, sembra che l'accesso alla named pipe è tra il 30% -50% più veloce dell'accesso standard TCP/IP. Tuttavia, questo varia in base al sistema e le pipe denominate sono più lente di TCP/IP in molte configurazioni di Windows .
http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html

ma in ciò che "configurazioni" è più lento? Ad ogni modo, ho continuato a supporre che sia più veloce per l'accesso localhost vs TCP, tuttavia, non sono stato in grado di trovare nulla di definitivo. Forse è più specifico anche per il driver particolare.

risposta

3

Prova a guardare http://msdn.microsoft.com/en-us/library/aa178138(SQL.80).aspx

Anche se parla di MS SQL Server, i locali named pipe in esecuzione in modalità kernel dovrebbero applicare ancora

Dal link di cui sopra:

E ' è anche importante chiarire se si sta parlando di tubazioni locali o tubi di rete locali. Se l'applicazione server è in esecuzione sul computer che esegue un'istanza di Microsoft® SQL Server ™ 2000, il protocollo locale Named Pipes è un'opzione. I pipe denominati locali vengono eseguiti in modalità kernel ed è estremamente veloce.

0

Ho fatto un test rapido - scaricando un db in un file e reimportandolo sulla mia macchina XP. Nessuna differenza mostrata - i risultati sono rimasti gli stessi.

Che cosa potrebbe influenzare le pipe denominate per essere più lento o più veloce?

Grazie

+1

Un aspetto sarebbe che c'è un sovraccarico nella creazione/distruzione di una connessione.Per una discarica si pagherebbe un costo una tantum per la connessione che avresti solo bisogno di fare una volta, e quindi la differenza sarebbe trascurabile. – Garen