Desarrollo Web /

Performance SQL vs "lo correcto"

Participa en el tema Performance SQL vs "lo correcto" en el foro Desarrollo Web.
Hola A raiz de algo que me dijo el camarada Quaidy, les hago una pregunta ...

Buscar en este tema:
 
  •  
    #1 Performance SQL vs "lo correcto"
    Hola

    A raiz de algo que me dijo el camarada Quaidy, les hago una pregunta en la practica hay que normalizar a full o a veces mejor no normalizar tanto por razones de rendimiento?

    Les pongo un ejemplo concreto:

    Tengo una tabla usuarios (id, nombre, apellido, pass, mail, tel, foto, NACIONALIDAD, ....bla bla)

    Nacionalidad puedo hacer lo siguiente ponerlo como como un campo mas de la tabla y quedaria asi:

    1, Pepe Hongo, 43434, Argentino
    2, Juan PErez, 34343, Argentino
    3, Carlos Menem, 34343, Aregntino
    4, Que te re contra, 43434, Peruano

    Entonces si normalizo el campo nacionalidad lo podria cambiar por id_nacionalidad y haer una tabla nueva nacionalidad, con esto ahorraria espacio en la base de datos y estructuraria mejor la bd para futuros cambios pero que pasa con la performance???

    Para capturar todos los datos ahora no me basta con un simple select sino que ahora debo hacer un INNER JOIN y creo que la performance se me degrada un poco.

    Es un ejemplo boludo pero esto en un sitio que maneje gran catindad de usuarios es crucial entonces que camino tomar a la hora de crear la bd??

    Espero que me hayan entendido hacia adonde apunto

    Saludos
    +
     
    0
    Me gusta
     
    | Más
  • #2 Re: Performance SQL vs "lo correcto"

    Como dije antes, para mi lo mejor es normalizar todo y etc ..

    Una vez q ya esta todo y tenes todas las consultas q vas a utilizar, empezas a ver cuales son las que mas movimiento tienen y los campos q se utilizan.
    Y ahi recortar las consultas agergando campos en alguna tabla.

    Hacer 5 join para sacar un id_usuario no tiene sentido ahora hacer 5 join para sacar algunos campos de cada tabla si es util xq de 1 sola consulta sacas mas datos .
    Me gusta este mensaje
  • #3 Re: Performance SQL vs "lo correcto"

    Me parece mas optimo tener un una tabla de nacionalidad porque si bien tenes un inner join mas, ese inner join entra por el indice de la tabla con lo que es muy performante, mientras que si lo tenes de otra forma con la nacionalidad en la misma tabla de usuarios el registro ocupa mas espacio y es posible que segmentes mas la base despues de un tiempo de uso.
    La nacionalidad en la misma tabla solamente seria factible si haces laburo de datawarehousing entonces ahi sabes que a la tabla de usuarios la cargas de una vez masivamente con lo cual el problema de la segmentacion no lo tenes.
    Me gusta este mensaje
  • #4 Re: Performance SQL vs "lo correcto"

    concuerdo con osqar.
    Por otro lado, es preferible hacer la base de datos en un principio bien "correcta" y normalizada, y optimizar cuando hayas identificado el cuello de botella. la pre-optimizacion nunca es recomendable.
    Me gusta este mensaje


Estadísticas del tema
  • 3 RESPUESTAS
  • 194 VISTAS
  • 4 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB