Japp
SQLite o MySQL, cómo decido en proyectos pequeños

SQLite o MySQL, cómo decido en proyectos pequeños

No todo necesita un servidor de base de datos aparte. Estos son los criterios que uso antes de montar un MySQL para un proyecto.

Durante mucho tiempo, para mí “base de datos” era sinónimo de MySQL sin pensarlo demasiado. Era lo que sabía montar, lo que traían por defecto los hostings de WordPress, lo que enseñaban en todos los tutoriales. Así que cada vez que un cliente necesitaba guardar cuatro datos, ahí iba yo a crear un usuario, una base, configurar el wp-config.php o el .env de turno…

Con proyectos como Facturapp cambié de opinión. Ahí no hay servidor: es una app de escritorio y móvil que corre en local, así que un MySQL no tenía ningún sentido — necesitaba algo que viviera dentro de la propia app. SQLite fue la respuesta obvia, y desde entonces lo uso también en proyectos web pequeños donde antes habría tirado de MySQL sin pensarlo.

Cuándo elijo SQLite

Si el proyecto no va a tener más de un puñado de escrituras concurrentes — un panel interno para un solo cliente, una herramienta que uso yo mismo, la propia app de escritorio — SQLite gana casi siempre. Es un archivo. Se hace copia de seguridad copiando ese archivo. No hay que gestionar usuarios, permisos ni un proceso aparte corriendo en el servidor. Y para consultas de lectura, en proyectos de este tamaño, la diferencia de rendimiento con MySQL es irrelevante.

Cuándo sigo tirando de MySQL

En cuanto entra WordPress o PrestaShop en la ecuación, no hay mucho que decidir: ellos ya asumen MySQL (o MariaDB) y pelearse con eso no compensa. Lo mismo si el proyecto va a tener varias escrituras simultáneas de verdad — un backend con tráfico real donde varios procesos escriben a la vez, ahí SQLite empieza a notarse, sobre todo en los bloqueos de escritura.

Lo que no hago

No decido esto por moda ni por lo que lea en Twitter esa semana. He visto el péndulo pasar de “SQLite es solo para pruebas” a “SQLite puede con casi todo” en un par de años, y las dos frases son exageraciones. La pregunta real es aburrida: ¿cuántos procesos van a escribir a la vez, y necesito de verdad un servidor aparte para eso? La mayoría de las veces, para lo que hago, la respuesta es que no.

¿Salir sin guardar?

Tienes cambios sin guardar en este formulario. Si sales ahora, se perderán.

esen