tesis sistemas sistema recomendacion hacer como mysql ruby-on-rails database sqlite

sistemas - ¿Hay una diferencia de velocidad entre sqlite3 y mysql?



sistema de recomendacion tesis (6)

SQLite es el más rápido

SQLite solo puede tener acceso por una conexión, usar el sistema de archivos para almacenar todo y no usa ningún servidor.

Es rápido y ligero. En realidad se supone que es el doble de rápido que MySQL.

SQLite y MySQL no se usan para las mismas tareas

Utilizará SQLite para aplicaciones simples que no necesitarán almacenar más de 5 Go de datos. Por ejemplo, una agenda local, un reproductor de música, burlarse o incluso una demostración del sitio web que insertarás en una llave USB.

Mysql, o lo que sea, necesita ser elegido para proyectos más grandes porque puede manejar un gran conjunto de datos y tener acceso simultáneamente. Lo usará para sitios web con acceso de usuarios, intranet, etc.

Después de mucho Google me he estado preguntando cuáles son los beneficios / diferencias entre mysql y sqlite3. Principalmente estoy esperando un tope de velocidad cuando mueva mi base de datos de desarrollo a mi base de datos de producción, aunque imagino que esto sucederá principalmente en mi código. ¿Alguien sabe cuáles son las principales diferencias en el rendimiento? ¿Hay? ¿O podría usted dirigirme hacia alguna literatura que compare los dos?


Aquí hay una manera simple de verlo: Sqlite es Notepad y MySQL es MS Word. Ambos hacen básicamente lo mismo, pero son muy, muy diferentes en su núcleo y se utilizan para diferentes propósitos.

Sqlite es una buena base de datos, y a menudo lo suficientemente buena, mientras que MySQL es un sistema mucho más complejo, pero con esa complejidad viene el poder.

También tendría que recomendar no utilizar diferentes bases de datos en desarrollo y producción. Es una tontería usar algo diferente a lo que sus clientes están usando. Si necesita la aceleración mientras desarrolla, sus clientes podrían usar la misma aceleración mientras usan su programa.


En realidad, me encontré con la necesidad de reproyectar la lógica de la base de datos de mi programa (ya en producción) debido a un error de SQlite que cuando enfrenta una cantidad relativamente grande de datos y operaciones, simplemente falla al bloquear la base de datos y dejarla así hasta que el programa se apaga, lo que significa que cada progreso de datos del programa es temporario, luego se pierde cada agregado. Lindo ¿eh?

Migrando a MySql, y llego al punto, intenté algo para probar la diferencia de velocidad y obtuve algo así como una consulta segura como "ACTUALIZAR tabla SET columna1 = columna1" en una tabla de 280''500 registros, SQlite requirió aproximadamente 13 segundos, mientras que MySql tomó solo 1 seg.

Todavía no soy un gurú de DB, pero elegir es una simple consideración: si necesita un almacenamiento de memoria simple para una cantidad limitada de datos, complejidad y concurrencia (como una pequeña utilidad o programas que funcionan con datos no críticos), entonces SQlite estará bien, de lo contrario, cuando necesite estabilidad, concurrencia, gran cantidad de datos, complejidad en las consultas, entonces su base de datos será MySql.

Acerca de las diferentes bases de datos en desarrollo y producción no estoy de acuerdo, pero si lo hizo, seguramente tendrá buenas razones.


Espero que a partir de su pregunta, no esté hablando de usar un sistema de base de datos diferente en desarrollo y producción.

Si está utilizando un DB diferente en desarrollo y producción, NO HAGA. Diferentes motores de base de datos se comportan de manera diferente y causarán errores inesperados. Intente que su sistema de desarrollo esté lo más cerca posible de la producción (sugerencia: ejecútelo en una VM)

SQLite y MySQL son buenos productos en el contexto correcto. Comprenda cuáles son sus capacidades.

SQLite:

  • Se ejecuta en proceso con la aplicación cliente
  • Sin capacidad de red
  • Muy baja sobrecarga de consulta debido a esto
  • Potencialmente bastante rápido para consultas fáciles porque hay menos IPC, llamadas al sistema y copia de datos para hacer.
  • Concurrencia muy limitada (creo que es un escritor o lectores múltiples, por archivo de base de datos)

MySQL:

  • Mucho más características
  • Elección de motores (InnoDB proporciona buenas características para muchas cargas de trabajo)
  • Mucho más control de almacenamiento, copia de seguridad, restauración, etc.
  • Capacidad de red, lo que permite su uso en aplicaciones a gran escala
  • Mejor concurrencia: el motor InnoDB tiene MVCC, lo que significa que los lectores no bloquean a los escritores, ni los escritores bloquean a los lectores. Incluso el viejo motor MyISAM tiene bloqueo a nivel de tabla en lugar de para toda la base de datos como sqlite.
  • Probablemente un mejor optimizador para consultas complicadas

En resumen, no puedes compararlos realmente como si nada. SQLite es bastante popular como base de datos integrada; Firefox 3 tiene una dentro.

En SQLite, tiene problemas para almacenar su base de datos en un disco local (o, por supuesto, disco de red, si hay uno disponible). Si desea escalar su aplicación web, probablemente tendrá que usar una base de datos basada en servidor como MySQL.


Esto puede ser diferente en diferentes idiomas, pero en PHP SQLite es bueno si solo estás modificando esporádicamente la base de datos. Esto se debe a que para garantizar la integridad, cada vez que se modifica la base de datos, el archivo SQLite se bloquea, los cambios se realizan y escriben en el archivo, y el archivo se desbloquea. Durante este tiempo, ningún otro proceso puede acceder a la base de datos, y depende de la implementación si las solicitudes de otros procesos fallan o se bloquean durante ese tiempo.


SQLite es un motor de base de datos incrustado, pero se ejecuta en el mismo proceso que su aplicación. MySQL, es un servidor de base de datos que se ejecuta en su propio proceso.

SQLite no pierde el procesamiento y las solicitudes de empaquetamiento de ancho de banda entre el proceso del servidor de aplicaciones y el proceso del servidor de la base de datos. Simplemente analiza las solicitudes, se da cuenta de qué hacer (plan de consulta) y llama a fopen () en el archivo de base de datos SQLite y ejecuta la consulta.

MySQL es mejor cuando su sitio recibe muchas solicitudes concurrentes, y necesita el enhebrado y la cola adicionales para atender correctamente todas las solicitudes.

SQLite es probablemente la mejor base de datos para usar si su sitio no obtiene más de 100.000 accesos por día, o el tamaño de su base de datos no excede los 25 GBytes. La otra ventaja de SQLite es que a menudo puede usarlo fácilmente en situaciones donde los procesos extra o los servidores de bases de datos son escasos. Consulte http://www.sqlite.org/whentouse.html .

También puedes hacer otras cosas con SQLite. Consulte http://www.squidoo.com/sqlitehammer para obtener más información sobre SQLite.