¿Sqlite o MySql? ¿Cómo decidir? [cerrado]

94

¿Alguna buena regla general sobre cómo decidir cuál de los dos usar?

Y, si se hace cargo de una base de datos Sqlite, y se espera que el sistema "se haga mucho más grande", ¿cómo decidir si seguir con él o pasar a MySql?

Mawg dice reinstalar a Monica
fuente
1
Considere FirebirdEmbedded, es una mezcla muy poderosa de los dos.
Stefan Steiger
1
Votar para cerrar por ser demasiado amplio. Se eliminó un posible duplicado: stackoverflow.com/questions/3630/sqlite-vs-mysql
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
10
Ahora es amplio, pero cuando se publicó, ese tipo de pregunta fue aceptable o, al menos, tolerado. Espero que la pregunta no se elimine, como el posible duplicado, para que otros aún puedan leer la discusión y las recomendaciones.
Mawg dice reinstalar a Monica el
5
Es una lástima que los "monitores" de este sitio estén cerrando las preguntas que tienen un gran impacto y visibilidad (mire el número de votos a favor a continuación). Lo que hace que todo el proceso de seguimiento y la selección del seguimiento sean bastante cuestionables.
francogrex
2
Los estándares, valores y objetivos del sitio han cambiado con el paso de los años. "Principalmente basado en opiniones" ya no es aceptable. Si quisiera preguntar esto hoy, lo haría en softwarerecs.stackexchange.com , no aquí, y enumeraría mis requisitos para una base de datos y recibiría recomendaciones. Entiendo por qué se cerró mi pregunta, pero todavía siento nostalgia por una época en la que solíamos tener una etiqueta de libros , y la palabra "mejor" en un título no significaba un cierre inmediato: - / YMMV
Mawg dice restablecer a Monica

Respuestas:

103

Sus conjuntos de características no son en absoluto iguales. Sqlite es una base de datos incorporada que no tiene capacidades de red (a menos que las agregue). Entonces no puedes usarlo en una red.

Si necesitas

  • Acceso a la red: por ejemplo, acceder desde otra máquina;
  • Cualquier grado real de concurrencia, por ejemplo, si cree que es probable que desee ejecutar varias consultas a la vez, o ejecutar una carga de trabajo que tenga muchas selecciones y algunas actualizaciones, y desee que se desarrollen sin problemas, etc.
  • mucho uso de memoria, por ejemplo, para almacenar partes de su base de datos de 1Tb en sus 32G de memoria.

Necesita usar mysql o algún otro RDBMS basado en servidor.

Tenga en cuenta que MySQL no es la única opción y hay muchas otras que podrían ser mejores para nuevas aplicaciones (por ejemplo, pgSQL).

Sqlite es una pieza de software muy, muy buena, pero nunca pretendió hacer ninguna de estas cosas que hacen los servidores RDBMS. Es una pequeña biblioteca que ejecuta SQL en archivos locales (usando el bloqueo para garantizar que múltiples procesos no arruinen el archivo). Está muy bien probado y me gusta mucho.

Además, si no puede elegir esto correctamente por sí mismo, probablemente necesite contratar a alguien en su equipo que pueda hacerlo.

MarkR
fuente
Entonces, básicamente, sqllite es una alternativa a los archivos de acceso de ms.
dvdmn
2
Esos tres puntos son exactamente lo que dice Richard Hipp en: youtu.be/Jib2AmRb_rk?t=1693
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
En aras de la simplicidad, siempre tengo una sola pieza de software que es el único usuario al que se le permite acceder a la base de datos, incluso para aplicaciones en red que usan una base de datos MySql.
Mawg dice reinstalar a Monica
57

El equipo de sqlite publicó un artículo que explica cuándo usar sqlite y es una excelente lectura. Básicamente, desea evitar el uso de sqlite cuando tiene mucha simultaneidad de escritura o necesita escalar a terabytes de datos. En muchos otros casos, sqlite es una alternativa sorprendentemente buena a una base de datos "tradicional" como MySQL.

Josué
fuente
11

SQLite listo para usar no es realmente completo con respecto a la concurrencia. Te meterás en problemas si tienes cientos de solicitudes web que llegan a la misma base de datos SQLite.

Definitivamente deberías ir con MySQL o PostgreSQL.

Sin embargo, si es para un proyecto de una sola persona, SQLite será más fácil de configurar.

Jerome WAGNER
fuente
En aras de la simplicidad, siempre tengo una sola pieza de software que es el único usuario al que se le permite acceder a la base de datos, incluso para aplicaciones en red que usan una base de datos MySql, pero, obviamente, especialmente para Sqlite.
Mawg dice reinstalar a Monica
10

Mis pocos centavos a las excelentes respuestas anteriores. el sitio www.sqlite.org funciona en una base de datos sqlite. Aquí está el enlace cuando el autor (Richard Hipp) responde a una pregunta similar.

Maksee
fuente
1
Gracias por el enlace, el mismo autor continúa con un banco de trabajo propio que probó en un Athlon 1600. 1GB RAM. Disco IDE de 5400RPM. Redhat 7.3. Concluye: «Ahora creo que SQLite es apropiado para su uso como base de datos principal en sitios web que obtienen hasta 1 millón de visitas al día».
Rutrus