2009-05-07 26 views
7

Últimamente he estado favoreciendo el uso de canalizaciones con nombre (opción --enable-named-pipes) en MySQL que se ejecuta en Windows, y me conecto mediante el controlador de conector .NET. A menudo se recomienda por motivos de seguridad, pero una cosa que me permite hacer es conectarme con "." como cadena de conexión y desarrollo en mi PC y despliegue en el servidor sin tener que cambiar la cadena de conexión (para apuntar al servidor host en lugar de mi propia copia de la base de datos).MySQL named pipes en Windows: ¿una mejor práctica o una mala idea?

Más que eso, en mi experiencia hay cierta aceleración que he atribuido a una ventaja de latencia sobre TCP. Algunas referencias que he encontrado en línea hacen eco de que:

Estábamos probando con éxito MySQL 5.0 utilizando named pipe, y ¡qué aumento en la velocidad! 50% en el caso de este gran proyecto En primer lugar, puede ser una buena idea utilizar el controlador más reciente jConnector de MySQL
http://www.waltercedric.com/component/content/article/1217.html

En las pruebas de rendimiento simples, parece que el acceso de canalización con nombre es entre 30% -50% más rápido que el acceso TCP/IP estándar. Sin embargo, este varía según el sistema, y ​​los conductos con nombre son más lentos que TCP/IP en muchas configuraciones de Windows .
http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html

Pero en lo que "configuraciones" es más lento? De todos modos, he estado procediendo en la suposición de que es más rápido para el acceso de localhost vs TCP, sin embargo, no he podido encontrar nada definitivo. Quizás es más específico para el controlador particular que se usa también.

Respuesta

3

Trate de mirar http://msdn.microsoft.com/en-us/library/aa178138(SQL.80).aspx

A pesar de que habla de MS SQL Server, las canalizaciones con nombre local que se ejecutan en modo kernel deben todavía se aplican

Desde el enlace antes mencionado:

Se También es importante aclarar si están hablando de tuberías locales o de tuberías de red . Si la aplicación del servidor se ejecuta localmente en el equipo que ejecuta una instancia de Microsoft® SQL Server ™ 2000, el protocolo local Canalizaciones con nombre es una opción. Local named pipes se ejecuta en modo núcleo y es extremadamente rápido.

0

Hice una prueba rápida: volcar un archivo de base de datos en un archivo y volver a importarlo en mi máquina de desarrollo de XP. No hubo diferencias, los resultados fueron los mismos.

¿Qué influiría en que las tuberías con nombre sean más lentas o más rápidas?

Gracias

+1

Un aspecto sería que hay una sobrecarga al crear/destruir una conexión.Para un vertedero pagaría un costo único por la conexión que solo necesitaría hacer una vez, por lo que la diferencia sería insignificante. – Garen

Cuestiones relacionadas