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

Muchos registros en una tabla, pocos registros en muchas tablas ?

Estas en el tema de Muchos registros en una tabla, pocos registros en muchas tablas ? en el foro de Mysql en Foros del Web. Hola a todos. Bueno...la pregunta que estoy pre-considerando es bastante estúpida, porque creo que recibiré una legión de "depende" de respuesta o "mas información". Básicamente ...
  #1 (permalink)  
Antiguo 16/02/2007, 10:20
 
Fecha de Ingreso: enero-2007
Mensajes: 5
Antigüedad: 17 años, 3 meses
Puntos: 0
Muchos registros en una tabla, pocos registros en muchas tablas ?

Hola a todos.

Bueno...la pregunta que estoy pre-considerando es bastante estúpida, porque creo que recibiré una legión de "depende" de respuesta o "mas información".

Básicamente mi pregunta es esa.

¿ Qué es mejor ? ( en cuanto a rendimiento de MySql , sin entrar en temas de legilibilidad, escalabilidad, etc..etc..solo en cuanto a rendimiento )

1: Muchos registros en 1 sola tabla.

2: Los mismos registros pero repartidos en varias tablas.

Evidentemente también depende de la optimizacion de la consulta que hagas, pero intentando suponer que las mismas estas igualmente optimizadas.

¿ Que le gusta mas a MySQL ?

Este tema me lo planteo porque pienso que distribuir en varias tablas los registros, es mejor, porque no tendré que estar leyendo absolutamente todos los registros cuando a lo mejor solo quiero algo muy concreto que puede estar solo en esa tabla.

Pero a la hora de totalizar la cantidad de registros que tengo en esas tablas (que pueden llegar fácilmente a ser mas de 40 tablas ) quizás sea, muy lento en cuanto a rendimiento.

Nose si me estoy explicando bien.

Pondré un ejemplo tonto :

Tengo una web con miles de frases.

Estas frases están divididas en categorías.

Que seria mas recomendable crear una tabla para cada categoría

O tener una tabla Frases y ahí meter absolutamente todas las frases, y añadirle el atributo categoría a la tabla ?

Ademas todo esto pensando que yo, con asiduidad, necesito saber, el numero total de frases que tengo, y el numero de frases que hay en cada categoría.

¿ Que harías vosotros en ese caso ?

Yo he pensado que lo mejor seria, dividir las frases en categorías, y posteriormente crear una tabla frases, que solo tuviese un Autoincremental y cada vez que añadiese una frase en cualquier categoría, crear un registro en esa tabla para saber el numero total de frases, y para totalizar las frases en cada categoría, pues recorrer individualmente cada tabla de la categoría correspondiente.

Pero también me queda la duda de si en esa tabla frases que tenga solo el valor incremental añadirle otro campo que sea de Categoría y poner hay la categoría de la nuevas frases que se añadan (ademas de estar en otro tabla de frases de esa categoría, que ya si estaría la frase completa). Para así solo tener que recorrer esa tabla de principio a fin, y no tener que recorrer varias tablas.

Nose si me he explicado bien y se entiende mi duda.

Sino se entiende, decírmelo e intentare explicarme de otra forma.

(Aviso : Soy absolutamente novato en MySQL, y en el lenguaje SQL y bases de datos en general, posiblemente por eso mi pregunta sea de novato, pido entendimiento y respeto)

Un saludo ;)
  #2 (permalink)  
Antiguo 16/02/2007, 11:47
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Re: Muchos registros en una tabla, pocos registros en muchas tablas ?

Yo te recomendaría que, sobre el ejemplo que has puesto de las frases, hagas una tabla para cada categoría. No te sabría decir a priori si sería mas rápido o no, pero está mejor estructurado si haces tablas separadas y relacionadas.
Por si estas un poco perdido con temas de bases de datos relacionales te invito a que visites este enlace de la wikipedia y este otro para ir abriendo boca.

Suerte y ánimo !!
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
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 18:11.