Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Rendimiento tablas con muchas columnas

Estas en el tema de Rendimiento tablas con muchas columnas en el foro de Mysql en Foros del Web. Hola: Mi duda es la siguiente: Estoy desarrollando un sistema administrativo, el cual consta de varias tablas. En una tabla (podría decirse, la tabla principal), ...
  #1 (permalink)  
Antiguo 09/02/2010, 17:37
 
Fecha de Ingreso: febrero-2010
Mensajes: 2
Antigüedad: 14 años, 10 meses
Puntos: 0
Pregunta Rendimiento tablas con muchas columnas

Hola:
Mi duda es la siguiente:
Estoy desarrollando un sistema administrativo, el cual consta de varias tablas. En una tabla (podría decirse, la tabla principal), tengo cerca de 25 columnas. Y ahora estoy en duda si agregarle otras 10 columnas más.
Quería saber si el número de columnas en una tabla afecta el rendimiento de MySQL (casi la mayoría de las columnas son de tipo entero, 7 carácteres de longitud) al momento de realizar consultas, ya sea SELECT, INSERT o UPDATE, estamos hablando de una tabla que almacena 10.000 o 15.000 registros como máximo.

Gracias por su atención a todos.
Espero su respuesta.
Un saludo.
  #2 (permalink)  
Antiguo 09/02/2010, 18:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Rendimiento tablas con muchas columnas

El problema no está tanto en la cantidad de columnas sino en el ancho del registro.
Si tienes 50 columnas de tipo CHAR(1) en una tabla y en otra 3 columnas de tipo VARCHAR(250), la consulta tardará menos en la primera tabla que en la segunda, simplemente porque tienes 50 bytes contra 750.
A esto le sumas que se necesitan 10 veces más bloques de TCP para enviar 20 registros de la segunda tabla que la misma cantidad de la primera. O sea: Afecta la performance de la red.

Así, el problema que debes resolver en realidad es el impacto a nivel de consultas de los campos en otros niveles:

¿Hay índices adicionales?
¿Se necesitarán JOINS especiales para usar esos datos?
¿Implicará el uso de columnas NOT NULL?

Etc., etc.

Esas cosas sí impactan en el problema. La cantidad de columnas no.

Un dato final: Si las columnas son MEDIUMINT, no ocupan 7 caracteres de ancho, sino 3, porque los números no se almacenan como caracteres sino como binarios. Un MEDIUMINT(7) significa que el ancho máximo de representación visual será de 7 caracteres (ver manual de referencia).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 10/02/2010, 07:47
 
Fecha de Ingreso: febrero-2010
Mensajes: 2
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Rendimiento tablas con muchas columnas

Muchas gracias gnzsoloyo por aclarar mis dudas. Y gracias por el enlace al manual.
Tu respuesta fue muy util.
Un saludo.
  #4 (permalink)  
Antiguo 10/02/2010, 19:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Rendimiento tablas con muchas columnas

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: columnas, innodb, muchas, registros, rendimiento, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:17.