
17/07/2009, 14:52
|
 | | | Fecha de Ingreso: agosto-2002 Ubicación: Panamá
Mensajes: 962
Antigüedad: 22 años, 6 meses Puntos: 15 | |
Respuesta: Clase para conectar a mysql Expondré varios puntos con respecto a la conección a la base de datos, porque mantener la conección abierta no es algo que no se debe hacer, todo depende de donde se implementará y como:
1- Si tienes un sitio web que cada página conecta a la base de datos directamente lo mejor es cerrar cada conección porque se crearán muchas. Mientras más gente visite más conecciones se abrirán.
2- Si tienes un programa Call center que lo usan mil computadoras lo mejor es que cada coneccion se cierre igual.
----------------
Al final los 2 métodos de arriba si no se sabe realmente cuantas conecciones se abrira terminará todo con un cuello de botella (bottleneck) con la base de datos. Los bottleneck es la causa de muchos errores que nadie sabe porque al menos que consigas a una persona con mucha experiencia y que viendo la arquitectura usada en el programa determine que existe.
Aquí entrán en juego la arquitectura N-Tier donde uno divide cada nivel de el programa dandole responsabilidades a modulos especificos en su nivel. Muchos ejemplos de estos los ves cuando un sitio tiene una arquitectura así:
Web asp.net - WebServices - DataBase
Aquí el Asp.Net Web no conecta a la base de datos, y si entran mil usuarios haciendo procesos siempre se comunican es con el WebServices, pero dirán el WebService por cada solicitud de datos se conecta a la base de datos lo que igualmente nos regresa atras no? La respuesta es que no regresa atras, ya dividido este asunto uno puede implementar el WebServices de muchas formas, la más comun es usando IIS y para darle menos carga a la base de datos se puede usar Cache de la información que no se actualize siempre.
En mi parte cuando tengo muchisimas visitas siempre trato en la arquitectura de el software de ver que requiere siempre la informacion al día y que no, lo que no requiere estar al idea lo mantengo en cache y elimine llamados a la base de datos siempre. Lo que necesita llamado continuo de informacion nueva entonces me quedara usar abrir y cerrar coneccion, o pongo WebServices que sea servido desde un Windows Services donde controlo que siempre mantengo 1 sola coneccion activa y la carga lo trabajo por transacciones.
Son muchas cosas que entran en juego pero todo se resuelve en base a una buena arquitectura que es allí donde se podrá tener un panorama claro de que se debe hacer tomando en cuenta las mejores practicas para los diferentes casos de uso.
Saludos, |