¿Donde guardar textos medianos o grandes?

  • Autor Autor WWWW
  • Fecha de inicio Fecha de inicio
WWWW

WWWW

VIP
Pi
Verificación en dos pasos activada
Suscripción a IA
Bueno tengo una duda, digamos que en mi aplicación se guardaran textos como si fueran 2 hojas (máximo) hechas en Word o PDF, entonces quisiera guardar dichos documentos copiando y pegando su texto, en un textarea y recuperarlos idénticos si es posible y mostrarlos en html.

Entonces no se que función me vendría mejor, si guardar todo el archivo en una base de datos con tipo TEXT o BLOB(binario), o mejor subo los archivos PDF o Word y solo guardo la URL-Destino en la Base de datos.

El fin de la aplicación es ahorrar recursos, ya que se esta usando un compartido y me refiero a unos 15,000 a 50,000 registros, los cuales pueden incluir 1 o 2 hojas llenas de caracteres y símbolos raros, que contendrán como 7500 caracteres (MAX) por registro.

Por lo que se TEXT y BLOB guardan un tamaño de 65000 caracteres aproximados máximo.

Que me recomiendas, para evitar consumir muchos recursos y sobre todo que no se sobrecargue mi host o mysql de la aplicación.

También agregando a esto, como es posible visualizar texto copiados y pegados en un textarea idénticos al archivo y guárdalos con sus receptivas modificaciones. ¿Es posible?

Saludos.
 
Si no quieres usar base de datos usa la segunda opcion, subir los archivos, y no necesitas guardar la url en la base de datos, los puedes abrir directamente con php.
 
[MENTION=81006]kanikase[/MENTION]
Gracias bro por responder, lo que sucede es que cada registro estará vinculado a su texto, el cual solo podrá ser editado por el mismo, ya que ademas de guardar estos textos, guardare sus datos personales etc.

La cuestión, es que si el día de mañana se supera el limite "ilimitado" y quiero cambiarme de servidor, no me sea tan difícil estar lidiando con archivos etc. Para evitar que esto me gustaría que todo estuviera en una solo base de datos, pero no se si es buena idea guardar este texto en un solo campo TEXT o BLOB, o si subir el archivo es la mejor opción, pero creo que consumiera más recursos, ya que el archivo se descargaría a cada rato, o se tendrían que dar permisos para leerlo y guardarlo, a cada rato y esto implica más recursos.

Entonces no se como le han hecho esos sitios medianos o grandes, para lidiar con textos así y estar en un compartido.

Saludos.
 
Entonces de todos modos, para mi es mejor la segunda opcion 😎
 
En tu segunda opción quieres guardar el nombre del archivo en la base de datos y el archivo directo en el disco, me imagino que aparte del nombre el registro lleva otros campos como titulo etc, en este caso al recuperar el titulo y el nombre del archivo ya estas haciendo conexión a mysql así que puedes aprovechar y mejor guardar tu texto en la base de de datos con campo de tipo varchar, recuerda que desde la version 5.0.3 de mysql ya se puede especificar una longitud de hasta 65,535 (en versiones anteriores solo 255) en campos varchar, suerte.
 
Pues yo recomiendo la segunda opción guardar los archivos en un directorio (suelo llamarlo filestore) y guardar metadatos en la basededatos tales como autor, fecha de creación, ultima modificacion etc etc....


Entonces el directorio de filestore puede ser un disco externo montado en el sistema. (o con un sistema de raid) de esta manera puede ir creciendo mientras mas lo necesites con la ventaja que puedes aplicar rutinas de respaldo para conservar estos importantes documentos.

Incluso en el filestore puedes hacer que se guarde siguiendo alguna estructura como idAutor/iddocumeto/assets/


La gran desventaja que le veo al guardar un archivo en una tabla (Por lo menos desde mi punto de vista ) es que alfinal vas a tener un enorme dump de megas y megas.. Ahora imagina que un día se truena esta base de datos.. el problema para ir recuperando...(ciertamente nunca me ha ocurrido.)

con respecto a migrar a otro server, pues simplemente puedes llevarte tu disco externo conectarlo migrar la base de datos y listo!!



Saludos~
 
Desde mi punto de vista yo también me iría por la segunda opción.
Subes los archivos al hosting a una carpeta y en la base de datos guardas solo el nombre del archivo.
Cuando lo subas lo mandas primero a una carpeta llamemosle temporal porque luego le vas a cambiar el nombre y enviarlo a la definitiva.
El nombre que le asignes puede ser varias letras mas el dia mes año hora minutos y segundos seria algo asi, archivo220920141156.doc
Esto te garantiza que todos los archivos van a tener un nombre diferente y que ese nombre va a ser corto por lo que los recursos consumidos en la base de datos son mínimos.
 
Atrás
Arriba