SQLite es una base de datos de código abierto, multiplataforma, compacta y eficiente.

La diferencia que tiene SQLite con otras bases de datos, es que SQLite no está enfocada a la arquitectura cliente servidor. Es decir no hay un servidor de base de datos como tal, que se encargue de recibir peticiones, procesarlas y devolvérselas a los clientes. El propio código de SQLite se encuentra almacenado en el cliente.

La definición de cliente en este caso, es un tanto amplia. Un cliente puede ser una aplicación de catálogo de películas escrita en lenguaje C, el intérprete de PHP, una extensión TCL, …

Hace algunos meses hubo un cambio en la licencia de MySQL, de forma que era incompatible con la distribución oficial de PHP, de manera que los desarrolladores de PHP decidieron incluir en la versión 5 soporte para SQLite, y opcionalmente para MySQL (en la versión 4 es al revés). Este acontecimiento aumentó la popularidad de SQLite tremendamente.

Sigamos con las características de SQLite. Cada base de datos es un archivo que se almacena en el disco duro del cliente. Efectivamente pudiendo ser el cliente un PHP, para nosotros estará en el servidor. El hecho es que en este caso concreto, PHP accede a SQLite como un archivo normal, en vez de utilizar sockets como hacen MySQL o PostgreSQL.

Es un punto clave de esta base de datos, la sencillez. A nivel del código C en que está desarrollado y de su forma de trabajar.

El resultado de la sencillez es que se obtiene un rendimiento excepcional, llegando a ser hasta 10 veces más rápida que MySQL (que era quien se solía llevar el premio), al mismo tiempo que consume muy pocos recursos del sistema, tanto a nivel de procesador, como de memoria como de disco.

Sus principales inconvenientes, derivan también de su sencillez. El lenguaje SQL que soporta no es todavía tan completo como sus competidores. Por otro lado, los bloqueos no son demasiado eficientes, y la escalabilidad está limitada.

Por tanto, SQLite es una base de datos muy recomendables en desarrollos que requieran una alta velocidad de ejecución, manejen una cantidad mediana de datos (tanto en número de registros como en espacio), y tengan poca concurrencia de lecturas y escrituras. Aplicaciones ideales serían sitios web dinámicos, catálogos en CD/DVD, …

La versión 3, todavía en beta, mejora estos puntos débiles, pero no los elimina al completo.