Estoy agregando avatares a un motor de foro que estoy diseñando, y estoy debatiendo si hacer algo simple (la imagen del foro se llama .png) y uso PHP para verificar si el archivo existe antes de mostrarlo, o para hacer algo un poco más complicado (pero no mucho) y use un campo de base de datos para contener el nombre de la imagen que se mostrará.¿File_exist() en PHP es una operación muy costosa?
Prefiero ir con el método file_exists() personalmente, ya que eso me da una manera fácil de recurrir a un avatar "predeterminado" si el actual no existe (aún), y es simple de implementar código sabio Sin embargo, me preocupa el rendimiento, ya que se ejecutará una vez por usuario, que se mostrará por página en las páginas de lectura del foro. Entonces, me gustaría saber si la función file_exists() en PHP causa alguna desaceleración importante que causaría importantes impactos de rendimiento en condiciones de mucho tráfico.
Si no, genial. Si lo hace, ¿cuál es su opinión sobre las alternativas para realizar un seguimiento de una imagen subida por el usuario? ¡Gracias!
PD: Las diferencias de código que puedo ver son que las versiones de comprobación de archivos permiten que los archivos hablen, mientras que el formulario de base de datos confía en que la base de datos es precisa y no se molesta en verificar. (es solo una URL que se pasa al navegador, por supuesto.)
La información del caché es muy tranquilizadora, terminé yendo con la solución file_exists. Sin embargo, la idea de BLOB parece muy interesante, podría intentarlo más adelante. ¡Gracias! –
pero BLOB no es bueno para el rendimiento. Usted obtiene sobrecarga de ejecutar PHP, MySQL, y tendrá que escribir soporte para la validación de caché HTTP, de lo contrario, los navegadores seguirán descargando avatares innecesariamente. – Kornel
Es importante tener en cuenta que PHP solo almacenará en caché los resultados de los archivos que existen, no almacenará en caché los resultados de los archivos que no existen. Ver: http://www.php.net/manual/en/function.clearstatcache.php – Brian