Imaginemos un sitio web que es un directorio de personas. Para cada persona puede haber una foto de perfil y una biografía.
Admito que mis consultas SQL podrían ser mejores, pero en general lo que sería más rápido y usaría menos potencia de procesamiento.
Para verificar si existe un archivo y luego abrirlo o
verifique con MySql para ver si existe una biografía y mostrarla.
Estoy bastante seguro de que en el caso anterior el sistema de archivos fumará la base de datos mysql.
¿Qué sucede si convierto la base de datos en un archivo txt delimitado de solo lectura?
¿Qué es más rápido en este caso?
¿Hay algún punto en el que si el archivo txt tiene demasiados registros es mejor usar MySql?
mysql
database-design
datafile
BlueBerry - Vignesh4303
fuente
fuente
Respuestas:
El sistema de archivos es útil si está buscando un archivo en particular, ya que los sistemas operativos mantienen una especie de índice. Sin embargo, el contenido de un archivo txt no se indexará, que es una de las principales ventajas de una base de datos. Otro es comprender el modelo relacional, de modo que los datos no tengan que repetirse una y otra vez. Otro es entender los tipos. Si tiene un archivo txt, deberá analizar números, fechas, etc.
Entonces, el sistema de archivos podría funcionar para usted en algunos casos, pero ciertamente no en todos.
fuente
Realmente depende de lo que estés haciendo. En general, la velocidad a la que puede abrir un archivo para leer será mejor que la velocidad a la que puede establecer una conexión de red. Entonces, para operaciones muy simples, el sistema de archivos es definitivamente más rápido. Los sistemas de archivos probablemente también superarán a un RDBMS para el rendimiento de lectura sin procesar, ya que hay menos sobrecarga. De hecho, si lo piensa, la base de datos nunca puede ser más rápida que el sistema de archivos en términos de rendimiento bruto.
Para operaciones muy complejas, es probable que el sistema de archivos sea muy lento. Por ejemplo:
Lea 10 líneas de este archivo de mil millones de líneas y luego busque líneas coincidentes en este otro archivo. Te compadezco si tienes que hacer esto. Sin embargo, un buen servidor de base de datos tiene estrategias para hacerlo rápido y bien, de modo que no reinventes la rueda.
Además, realmente necesitas descubrir lo que estás haciendo. ¿Qué datos estás almacenando? ¿Cómo lo vas a transformar? Si se trata de 100k archivos de imagen, su solución se verá muy diferente de si es un directorio para 100k personas. (¿LDAP tal vez? ¿O una base de datos SQL? Depende de lo que esté haciendo, tal vez). La clave aquí es elegir las herramientas que coincidan con lo que está haciendo y que le den espacio para agregar más usos, en lugar de lo que parezca más rápido para algunos caso de uso bastante abstracto. Las bases de datos son herramientas maravillosas, pero no puede obtener una buena respuesta a una pregunta como esta.
Finalmente, la optimización prematura es la raíz de todo mal. Elija herramientas útiles ahora y descubra el resto más adelante.
fuente
El sistema de archivos podría ser más rápido inicialmente, pero lo dudo. Sin embargo, a medida que aumenta el tamaño de sus datos, es probable que tenga que reestructurar su sistema de archivos para mantener el rendimiento. Además de su capacidad obvia de indexar en múltiples atributos, las bases de datos tienden a escalar mejor.
Los cachés web que funcionan de manera similar a lo que está considerando utilizan el árbol de directorios para mantener el rendimiento. También tienden a ser de una escala relativamente fija, por lo que no tienen que lidiar con una escala creciente.
Para este tipo de aplicación, comenzaría con una base de datos, ya que se ajusta mejor a sus necesidades. Se escalará mucho mejor a largo plazo. En comparación con la mayoría de los sistemas de archivos, una base de datos también será más eficiente en cuanto al espacio.
fuente
Siempre me encanta venir a estos foros y leer todos los gurús de bases de datos pesados que el sistema de archivos no puede hacerlo tan rápido como la base de datos. Por el contrario, un árbol correctamente distribuido, tablas hash bien diseñadas y guardarlas como un objeto en un archivo producirá las mismas velocidades que una base de datos y de mis pruebas. Una tabla hash y un árbol de directorios correctamente diseñados ganarán cada vez. Mucho menos sobrecarga. Recientemente me he alejado de la programación basada en bases de datos y más en el árbol de archivos por simplicidad y portabilidad del programa. Sin base de datos significa una copia de seguridad fácil, simplemente cierre su árbol y listo. Es muy agradable y una recomendación programar de esta manera para clientes únicos con pequeñas aplicaciones. Mira la gran foto, ¿tengo tiempo para diseñar la mía o simplemente aprovechar lo que ya está allí como el db? Personalmente, me gusta guardar mis objetos en un archivo y usarlos más tarde, solo vigile el tamaño de sus tablas y busque el uso de un RandomAccessFile para poder diseñarlo rápidamente como una base de datos y dividirlo en objetos de tabla hash . Disfrutar. Recuerde que cualquier dato que almacene en el archivo consumirá el doble del uso de memoria a veces dependiendo de su código. La tabla hash en sí y, por lo general, dónde la consume para ver.
fuente