Como es habitual con las preguntas de rendimiento, los resultados pueden variar bastante, por lo que la respuesta es: lo que es más rápido es lo que funciona más rápido para .
El lugar para comenzar es medir cuánto tiempo lleva hacer las cosas como las estás haciendo ahora. Una vez que haya hecho esto, pregúntese: ¿esto es lo suficientemente rápido? Puede ser que, aunque no sea la forma más rápida de hacer las cosas, sigue siendo tan rápido que la velocidad no es una preocupación.
¿Qué parte del tiempo se procesa una página para obtener el archivo globs? 1%? 10%? 50%? Cuanto más alto es este porcentaje, más útil se vuelve considerar cambiar la forma de hacer las cosas.
Además, ¿cómo es el rendimiento del sitio como un todo? Si duplicó la velocidad de cada carga de página, ¿notará la gente? Si no es así, puede que no valga la pena hacer ajustes de rendimiento, incluso si ve el lugar obvio para hacerlo.
Si cree que podría hacerlo mejor, implemente la funcionalidad usando su base de datos y mida si eso es más rápido. De nuevo, los resultados con esto podrían ser muy variables. Por ejemplo, si su base de datos tiene una gran carga, obtener los resultados de la base de datos puede ser mucho más lento. Si tiene una base de datos enormemente poderosa que apenas se usa, puede ser muy rápido. Solo las pruebas pueden decirle la verdad.
Agregaré que la forma en que está haciendo las cosas ahora parece más simple y más fácil de mantener, porque encuentra nombres de archivos basados en los archivos reales en su disco. Si intenta utilizar una base de datos, tendrá que preocuparse por sincronizar la lista de nombres de archivos en la base de datos con la lista de archivos en el sistema de archivos.
Sin embargo, hay que tener en cuenta que muchos sistemas de archivos funcionan peor cuando se tiene un único directorio con una gran cantidad de archivos. Si tiene esta situación, considere dividir los archivos en múltiples subdirectorios. Un enfoque popular es crear directorios con nombres az y luego poner todos los archivos que comiencen con "a" en el directorio "a", todos los archivos que comiencen con "b" en el directorio "b", etc. Sin embargo, esto probablemente solo sea importante una vez que tenga decenas de miles de archivos, e incluso entonces depende del sistema de archivos particular y del hardware en el que se ejecuta.
(Editar basado en los comentarios :)
Dado que estamos hablando de pre-cálculo de los resultados y el almacenamiento de los de la base de datos, que sugieren que un enfoque mejor que poner las cosas en una base de datos es utilizar un servidor de almacenamiento en caché como http://memcached.org/. Puede ver esto como un enfoque híbrido: todavía hace las cosas de la forma en que las está haciendo ahora, pero cada vez que quiere un resultado, primero verifica el caché para ver si contiene el resultado; si lo hace, utilizó el resultado almacenado en caché, de lo contrario, calcule el nuevo glob.Esto evita el problema de mantener la base de datos y el sistema de archivos sincronizados, ya que las entradas antiguas de caché pueden caducar y ser reemplazadas por nuevas y correctas.
considerando que hay más de 50 usuarios en línea a la vez. – ArslanCb
El problema central en esta pregunta parece ser que usted está "preocupado por el uso", pero no está claro todo lo que quiere decir con eso. Explique el problema que le concierne más claramente para que podamos ayudarlo. En su opinión, ¿cuál es exactamente el problema con la forma en que está haciendo esto ahora? –
Gracias Nate. Sí, mi preocupación principal es CPU/Memoria o puede decir rendimiento. Qué opción es mejor. – ArslanCb