Mi sitio siempre ha usado conexiones persistentes, según mi comprensión de ellas, no hay ninguna razón para no hacerlo. ¿Por qué cerrar la conexión cuando se puede reutilizar? Tengo un sitio que tiene acceso total a aproximadamente 7 bases de datos. No es un gran sitio de tráfico, pero es lo suficientemente grande. ¿Cuál es tu opinión sobre persistente, debería usarlos?Persistente vs no persistente - ¿Qué debería usar?
Respuesta
Con conexiones persistentes:
- No se puede construir el procesamiento de transacciones efectivamente
- sesiones de usuario imposibles en la misma conexión
- aplicación no son escalables. Con el tiempo puede necesitar extenderlo y requerirá administración/seguimiento de conexiones persistentes
- si el script, por cualquier razón, no pudo liberar el bloqueo en la tabla, entonces los siguientes scripts se bloquearán indefinidamente y uno debe reiniciar el servidor db El uso de transacciones, bloque de transacción también pasará a la siguiente secuencia de comandos (usando la misma conexión) si la ejecución del script termina antes de que el bloque de transacción se completa, etc.
Las conexiones persistentes no aportan nada se puede hacer con conexiones no persistentes .
Entonces, ¿por qué usarlos, en absoluto?
La única razón posible es el rendimiento, para usarlos cuando la sobrecarga de crear un enlace a su servidor SQL es alta. Y esto depende de muchos factores como:
- base de datos de tipo
- si el servidor MySQL está en la misma máquina y, si no, ¿hasta dónde? podría estar fuera de su red/dominio local?
- cuánto sobrecargado por otros procesos de la máquina sobre la que se asienta MySQL
Uno siempre puede reemplazar las conexiones persistentes por conexiones no persistentes. Puede cambiar el rendimiento del script, pero no su comportamiento.
Comercial RDMS podría ser licenciado por el número de conexiones abiertas simultáneas y aquí las conexiones persistentes puede misserve
Mi conocimiento sobre el área es un tanto limitado, así que no puedo darle muchos detalles sobre el tema pero, hasta donde yo sé, el proceso de crear conexiones y entregarlas a un hilo realmente cuesta recursos, así que lo haría evítalo si fuera tú. De todos modos, creo que la mayoría de estas decisiones no se pueden generalizar y dependen del negocio.
Si, por ejemplo, su aplicación se comunica continuamente con la base de datos y solo se detendrá cuando se cierre la aplicación, entonces quizás las conexiones persistentes sean el camino a seguir, ya que evita el proceso mencionado anteriormente.
Sin embargo, si su aplicación solo se comunica con la base de datos esporádicamente para obtener información menor, cerrar la conexión puede ser más sensato, ya que no desperdiciará recursos en conexiones abiertas que no están siendo utilizadas.
También hay una técnica llamada "Pooling de conexiones", en la que se crean a priori una serie de conexiones y se mantienen allí para que consuman otras aplicaciones. En este caso, las conexiones son persistentes para la base de datos pero no persistentes para las aplicaciones.
Nota: Las conexiones en MSSQL siempre son persistentes en la base de datos porque la agrupación de conexiones es el comportamiento predeterminado.
- 1. "estado persistente" vs. "estado actual"
- 2. ¿Cómo creo una cookie persistente contra una no persistente?
- 3. Almacenamiento local HTML5 no persistente
- 4. ¿Qué tan persistente es localStorage?
- 5. Servicio persistente
- 6. persistente NSOperationQueue
- 7. estructura de datos persistente vs inmutable
- 8. Cómo usar la conexión persistente de PDO?
- 9. mysqli conexión persistente
- 10. Memorización persistente en Python
- 11. Google OpenID + OAuth persistente?
- 12. Almacenamiento persistente Cocoa/MacOSX
- 13. ¿Cuándo querríamos una preferencia no persistente?
- 14. iOS estrategia de almacenamiento persistente
- 15. ¿Qué significa exactamente una "conexión persistente"?
- 16. ¿Qué tan persistente es [NSUserDefaults standardUserDefaults]?
- 17. Django - Caché persistente
- 18. Subproceso de python persistente
- 19. HttpURLConnection persistente en Java
- 20. Crear cookie no persistente con FormsAuthenticationTicket
- 21. Cuarzo y primavera: ¿agrupado pero NO persistente?
- 22. Conexión HTTP persistente con RestSharp
- 23. Modo plegable persistente de Emacs
- 24. Persistente ignorante Capa de dominio
- 25. Encabezado persistente en jQuery Mobile
- 26. persistente de autenticación Token Expira
- 27. HTTP conexión persistente vs conexión de socket TCP
- 28. Como crear un persistente AlarmManager
- 29. Propiedad RightBarButtonItem persistente de UINavigationItem
- 30. Java: ¿gran estructura hash persistente?
1 para la información sobre MySql no ser libre para uso comercial. Me pregunto cuántas personas no se dan cuenta de esto. Aunque, una licencia pagada es bastante barata. – NotMe
mierda No lo sabía ... Tendré que investigar eso, gracias. – Webnet
¿Hay alguna manera de rastrear la sobrecarga de establecer/cerrar conexiones? Recibo errores que involucran demasiadas conexiones, así que me pregunto si la persistencia es parte del problema. Cuando dices transacciones, ¿a qué te refieres con preguntas? – Webnet