4 messages in com.mysql.lists.mysql-esOptimización| From | Sent On | Attachments |
|---|---|---|
| Enrique Piatti | 05 Dec 2005 11:04 | |
| ISC Edwin Cruz | 05 Dec 2005 13:22 | |
| Enrique Piatti | 05 Dec 2005 14:23 | |
| Dani | 06 Dec 2005 01:20 |
| Subject: | Optimización![]() |
|---|---|
| From: | Enrique Piatti (enr...@yahoo.com.ar) |
| Date: | 12/05/2005 11:04:17 AM |
| List: | com.mysql.lists.mysql-es |
Tengo un pequeño problema con la optimización de una tabla en mySQL.
Esta es más o menos la situación:
Supongamos una tabla con varios campos, supongamos de alguna venta, productos o
algo típico:
Campos:
ID
Fabricante
Producto
Precio
Descuento
Fecha
ID es sólo un campo primario virtual con auto_increment.
Los demás son campos ordinarios.
Pero tengo 2 problemas:
- La tabla puede llegar a ser enorme, y sufre inserciones constantemente
(muchísimas, supongamos 1 por segundo).
- Debo evitar que se inserten registros duplicados.
Para mantener la velocidad creí que sería bueno agregar índices, pero debido a
las constantes inserciones, sigue siendo una buena opción o sólo empeoraría las
cosas?
Para evitar inserciones duplicadas implementé una solución muy vaga:
Cree un campo auxiliar que guarda una cadena (VARCHAR) donde concatena los
campos Fabricante_Producto_Precio_Fecha.
Luego hago un select a ese campo, y antes de insertar un registro me fijo si no
está repetido armando la concatenación del nuevo registro.
Si, es muy trucho, pero me pareció que era mejor a comparar los 4 campos, sera?
De qué otra forma podría hacerlo? deberia crear un indice Unico de este campo de
control? mySQL simplemente no insertará nada cuando trate de introducir un
registro repetido?
No se, no tengo demasiada experiencia con base de datos, alguien conoce un buen
método de optimización?
En la base da datos como dije, se insertan registros muy frecuentemente, y hacen
"Selects"también bastante seguido (ya que hay muchos usuarios conectados a la
misma buscando cosas diferentes). Esto también me hace recordar... debería crear
una conexión persistente?
Gracias a todos ! Saludos! enrique.




