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

solución óptima: ¿1 query grande o varias peques?

Estas en el tema de solución óptima: ¿1 query grande o varias peques? en el foro de Mysql en Foros del Web. Buenas, Tengo una bbddd de unos 40.000 usuarios, y estoy implementando la utilidad de verificar si el nombre de usuario ya existe mientras el usuario ...
  #1 (permalink)  
Antiguo 02/10/2012, 10:14
Eux
 
Fecha de Ingreso: octubre-2010
Mensajes: 60
Antigüedad: 13 años, 5 meses
Puntos: 0
solución óptima: ¿1 query grande o varias peques?

Buenas,

Tengo una bbddd de unos 40.000 usuarios, y estoy implementando la utilidad de verificar si el nombre de usuario ya existe mientras el usuario esta rellenando en el formulario la casilla "username" para los nuevos usuarios.

Mi dilema es: (sabiendo que el username debe ser igual o más que dos caracateres

1º solución:
yo tenía previsto hacerlo recuperando toda la columna username (los 40.000) y a partir de allí me olvido de la bbdd e iría comparando a partir de la segunda letra si ese usuario existe o no, con lo que la carga fuerte de bbdd sólo sería al principio.

2º solución:
La otra solución sería hacer una query a partir de la segunda letra para cada letra que introduce el usuario para ver si esa cadena existe en la bbdd en la columna username. Aquí no haces carga fuerte pero hacer muuchas pequeñas.

¿QUÉ SOLUCIÓN CREÉIS QUE ES MÁS ÓPTIMA?

Gracias a tod@s.
  #2 (permalink)  
Antiguo 02/10/2012, 10:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: solución óptima: ¿1 query grande o varias peques?

La primera opcion tiene graves problemas de concurrencia. Además, tienes un mayor costo de transacciones, comunicaciones, etc. Es decir: Desperdicio de recursos.
Piensa que sólo consultando con la primera letra, ya te trae 1/37 de los 40.000 registros, e decir, alrededor de 1080 registros, y con dos caracteres alrededor de 30 registros...
¿Se entiende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 02/10/2012 a las 10:51
  #3 (permalink)  
Antiguo 02/10/2012, 13:05
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: solución óptima: ¿1 query grande o varias peques?

Bueno, siempre puedes hacerlo al perder el focus el campo. Eso te facilitaría mucho las cosas, tanto en programación como en recursos.
Si eres muy exigente y tiene que ser con el change del campo pues la 2º opción claramente es más correcta
  #4 (permalink)  
Antiguo 02/10/2012, 13:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: solución óptima: ¿1 query grande o varias peques?

Cita:
Bueno, siempre puedes hacerlo al perder el focus el campo.
Eso es tema de programación y es OFF-TOPIC de este foro.
En el foro de Bases de Datos y sus subforos no está permitido tratar temas relacionados con programación. Sólo SQL y BBDD.
La conveniencia o no de procesos de la aplicación no son incumbencia de la base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 03/10/2012, 02:08
Eux
 
Fecha de Ingreso: octubre-2010
Mensajes: 60
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: solución óptima: ¿1 query grande o varias peques?

gnzsoloyo, no sé si te he entendido bien, porque aquí me parece que me hablas de las desventajas de la 1º opción:
Cita:
Iniciado por gnzsoloyo Ver Mensaje
La primera opcion tiene graves problemas de concurrencia. Además, tienes un mayor costo de transacciones, comunicaciones, etc. Es decir: Desperdicio de recursos.
Pero aquí me parece que me estas hablando de las desventajas de la 2º opción
Cita:
Iniciado por gnzsoloyo Ver Mensaje
Piensa que sólo consultando con la primera letra, ya te trae 1/37 de los 40.000 registros, e decir, alrededor de 1080 registros, y con dos caracteres alrededor de 30 registros...
¿Me lo explicas por favor?

Graciasss.
  #6 (permalink)  
Antiguo 03/10/2012, 03:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: solución óptima: ¿1 query grande o varias peques?

No, sólo la primera tiene desventajas catastróficas.
En el segundo caso te estoy hablando de las ventajas de hacerlo sobre la base de las entradas.

Para el tema de concurrencia, es simple: Con el primer método no te aseguras que dos o más usuarios, accediendo al mismo no puedan ponerte el mismo nombre, además que terminas trayendo muchísimos registros inútiles (la mayoría), que usan no solo recursos de red, sino de la base de datos, que luego necesitarás para otras transacciones (consumen los limites qu ele hosting te pone para el trafico), siendo que con solo filtrar por una letra, ya tendrías 37 veces menos...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 03/10/2012 a las 03:35

Etiquetas: grande, query
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 06:17.