¿Cuál es el archivo de texto IO más rápido o MySQL?

Depende de cuán grande sea el archivo (s), cuán selectiva sea la consulta y si las claves utilizadas en la actualización o selección están indexadas.

Si la base de datos tiene que hacer una exploración de tabla completa, es probable que sea más lenta que un archivo. Eso es algo que los esquemas de bases de datos generalmente están diseñados para evitar. Es una base de datos de gigabytes, y la actualización es una fila de una clave primaria o campo indexado, es probable que la base de datos realice un puñado de pequeñas operaciones de E / S, mientras que la operación del archivo tendrá que leer todo.

Para una actualización, un archivo de texto probablemente también tenga que reescribirse por completo. Esto no funciona si hay más de un programa haciendo actualizaciones a la vez.

Entonces, para cosas pequeñas y de un solo usuario, un archivo de texto plano (como el formato CSV) puede ser más rápido y simple. Tan pronto como las cosas crecen, y hay acceso multiusuario, te lleva a varios tipos de tecnología de base de datos.

La pregunta es algo similar a: ¿Qué es lo mejor en almacenamiento? La respuesta es probablemente un archivo zip. Es muy bueno para almacenar cargas de datos. Especialmente si todo funciona. Sin embargo, lo malo es leerlo de nuevo, o peor, editarlo o realmente peor … cuando no funciona, es decir, qué sucede si intenta escribir un archivo y su sistema decide que es hora de actualizar Windows 10 …

Y eso debería responder también a su pregunta sobre el archivo de texto o el sistema de base de datos. Si la seguridad no es tan importante para usted, si los usuarios múltiples, el bloqueo, la programación, las consultas complejas y los cálculos matemáticos no tienen importancia, entonces siempre ganará un archivo de texto.

Ahora he explorado por mi cuenta varios sistemas de almacenamiento pequeños. Es divertido hacerlo una o dos veces, pero actualmente ya no puedo molestarme en crear un sistema a prueba de fallas.

Cuando dices archivo de texto, supongo que te refieres solo a un archivo con datos.

Puede considerar MySQL como una forma generalizada de leer y escribir archivos. Cuando se dice eso, siempre puede diseñar algo que acceda al archivo de texto de la misma manera que MySQL y, por lo tanto, al menos tenga el mismo rendimiento.

Como MySQL agrega muchas características y está generalizado, siempre puede escribir un formato de archivo especializado que funcione mejor.

MySQL solo le brinda muchas funciones sin que tenga que preocuparse por ello, como ACID, control de acceso, multiusuario, consultas, copia de seguridad, restauración, replicación y gran cantidad de ecosistemas para administrar sus datos.

Dependiendo de su experiencia, supongo que si intenta crear su propio formato de archivo, terminará con algo más lento y con más errores.

Creo que estás un poco perdido en lo que significa cada cosa.

Si necesita buscar datos y / o clasificar sus datos con relaciones complicadas, utilice una base de datos. Es para qué bases de datos han sido diseñadas.

Solo infringe la regla anterior si tiene datos muy simples en una pequeña cantidad. Luego, podría almacenar en caché los datos en la memoria utilizando alguna estructura de datos avanzada (mapa / diccionario / árbol / hash).

En caso de que tenga datos secuenciales, algo que podría expresarse como una gramática, como un documento, un lenguaje de programación o algo similar, utilice el texto. Pero incluso en algunos casos, puede usar una base de datos para eso (como sqlite).

Su pregunta es un poco incompleta sin algún contexto.

Depende.

  • Lectura de las primeras palabras: archivo de texto
  • Encontrar la oración que comienza con “Reader, I”: mysql
  • Reemplazar todas las ‘a’s con’ x’s: archivo de texto
  • Agregar una nueva oración en el medio: mysql
  • Lectura de un gigabyte de texto de un ssd de última generación frente a un servidor mysql compartido sobrecargado: archivo de texto
  • Lectura de un gigabyte de texto de un disco portátil de 5400 rpm en comparación con un servidor mysql dedicado que lee desde un San de alta velocidad: mysql

Se puede decir “depende” porque ambas tecnologías están en uso regular. Si uno es casi siempre mejor que el otro (sin una gran diferencia en el costo), todos dejarían de usar el peor: por ejemplo, disquetes.

la única respuesta a esto realmente es: depende …

realmente depende de la cantidad de datos que haya allí, algo que nadie parece haber mencionado aún, aunque está indexando

a menos que haya escrito su propio lector de archivos de texto personalizado que pueda indexar su archivo de texto, una consulta SQL en una tabla indexada siempre será mucho más rápida, no tendrá que escanear todo el archivo para encontrar los datos que necesita .