Duda en mySQL

Abreu

A ver si algun jugon del SQL me resuelve esto.

Tengo una web en PHP y mySQL con un sistema de usuarios parecido al que se usa aquí. El caso es que hasta hace poco usaba un campo de la tabla de usuarios para contabilizar sus mensajes en el foro pero me he dado cuenta de que utilizando un COUNT() en la tabla con los mensajes del foro puedo conseguir el número de mensajes que ese usuario ha posteado sin necesidad de sumar 1 cada vez que ese usuario postea.

La duda que tengo es si este último sistema me creara problemas a la larga, como ejecuciones lentas de los scripts.

¿Que es más rapido? ¿Hacer un COUNT() o seleccionar una celda de una tabla?

Ahí queda eso, espero haberme explicado mien ^^

SHoSHin

yo creo que es mas sencillo usar un contador cada vez que el usuario postea, eso de mas rapido o mas lento no creo que tenga mucho sentido.

Letto

Cuando la tabla de mensajes crezca estarás consumiendo un webo para saber los mensajes que lleva ese hombre.

Y sino haz la prueba poniendo el tiempo que tarda en generar la página, una leyendo ese campo en la bd del usuario (que de paso es una consulta que ya haces para sacar más datos sseguramente) y otra haciendoe l COUNT

Mav

Depende del hardware que tengas debajo. Si es una maquina potente (hosting que tu pagas) realmente el count no sera costoso en tiempo. Ademas el desarrollo sera mas rapido pues no tendras que modificar el campo donde guardas el nuero de post. Por el contrario, si el server es el linux que tienes en tu casa y vas a tener un numero considerable de posts, quizas el ir guardando el numero sea una mejor solucion.

aLeX

Pero no es lo mismo actualizar la celda del usuario cada vez que postea que contar los posts y ver si son suyos.

Vamos, yo haria contador por usuario, no uno general y despues contar los post totales y sacar de ahi los del usuario X.

Abreu

Gracias a todos ^^

He hecho la prueba con una galeria de fotos (5000) en mySQL bajo W2000 y los segundos son los mismos (0.015). Ahora me falta problarlo en un servidor..

Tambien hay que tener en cuenta que si se hace un campo con el contador, este debe ser actualizado si el usuario postea otro mensaje o si un admin se lo borra. Así que con la segunda forma me ahorraría 2 UPDATE pero a la larga me saldría caro.... :s

Bueno, todo depende del server en que esté la web. Gracias otra vez!

Usuarios habituales

  • Abreu
  • aLeX
  • Mav
  • Letto
  • SHoSHin