07/07/2011

¿Qué diferencia hay entre MariaDB (MySQL) y SQLite3?

SQLite, MySQL, MariaDB

Josep Sanz

MariaDB (el nuevo MySQL realmente libre) es uno de los sistemas gestores de bases de datos relacionales más conocidos en el mundo del software libre (de hecho, se emplea LAMP para indicar Linux + Apache + MariaDB (MySQL) + PHP).

SQLite3 es otro sistema gestor de bases de datos pero orientado a las aplicaciones empotradas, usado en aplicaciones tan conocidas como Firefox, Thunderbird, Android, y así hasta completar una larga lista de programas que lo usan.

Las diferencias, radican básicamente en que MariaDB (MySQL) es un servidor que atiende peticiones que se le realizan a un puerto usando una conexión TCP/IP tradicional, mientras que SQLite3 es más que un servidor, una librería soportada por la gran mayoría de lenguajes de programación y que permiten acceder a un fichero local como si de una base de datos se tratara.

Así que como resumen se puede decir que SQLite3 es una base de datos orientada a fichero mientras que MariaDB (MySQL) esta orientado como servicio.

El problema que suelen tener las bases de datos orientadas a fichero es la concurrencia (controlar cuando uno escribe que otro no lo haga para mantener la integridad del propio fichero).

En SaltOS, está solucionado usando semáforos POSIX que permiten este tipo de control y así, evitar el acceso concurrente de 2 threads del servidor, por ejemplo, al mismo tiempo para escribir.

Las API's de SaltOS definen 2 funciones llamadas semaphore_acquire y semaphore_release, que internamente emplean la función de PHP llamada flock que permite precisamente controlar el bloqueo de un fichero que es definido como semáforo.

Con este mecanismo, se evita la concurrencia sobre las bases de datos SQLite3 garantizando así la integridad del fichero, y por lo tanto, de los datos.


Líneas de XML
52,798
Líneas de PHP
14,219
Líneas de JS
6,391
Líneas de T2T
3,499
Líneas de XSLT
2,652
Líneas de SQL
1,688