miércoles, 1 de mayo de 2013

¿Cuando debo usar SQLite?

SQLite, a diferencia de MySQL o cualquier otro gestor de base de datos, está unificado en un archivo independiente con extensión .sqlite o .s3db (sí es la versión 3 de SQLite), sun funcionamiento es muy similar a cualquier consulta con SQL: Select, update, delete, drop...

En mi puesto de trabajo escucho muchas quejas a la hora de crear bases de datos: plataformas como Joomla o Wordpress utilizan SQL por razones obvias: están pensadas para grandes cantidades de información pero... SQLite? ¿que tiene de malo?

El 99.9% de las paginas web en la red pueden soportar tranquilamente una base de datos con SQLite, entre estas categorias se pueden encontrar páginas del tipo
  • Amplios foros
  • Libros de visitas o similares
  • Mensajería o salas de chats
  • Tiendas on-line de tamaño medio
  • Backends temporales
  • Blogs o entradas de noticias
 Por supuesto, esto depende mucho de la cantidad de información almacenada, está más que claro que una base de datos de una red social que ejecuta miles de consultas cada segundo no podría soportar SQLite, seguramente se corrompería en cuestión de segundos.

Si estás pensando crear una página web que albergará una base de datos, conviene saber si entra en los siguientes puntos. Si es así, es mejor que te plantees usar SQLite en vez de una avanzada base de datos como MySQL o Oracle
  • Tu página recibirá un promedio de 100.000 visitas diarias o menos de 300.000?
  • El sitio tendrá una larga temporada en versiones beta?
  • Necesitas probar seguridad contra inyecciones SQL?
  • Tendrá como objetivo almacenamiento local?
  • Se usará sobre una plataforma móvil como Android o iOS?
  • La base de datos no necesita analización constante?
  • Necesitas una base de datos temporal?
  • Necesitas trastear con la base de datos en distintos sitios, en ocasiones incluso sin acceder al servidor o sin depender de una conexión a internet?
  • Tu página entra en cualquiera de los tipos de páginas listados anteriormente?
Si la respuesta es "Sí" a alguna de estas cuestiones, seguramente lo mejor es que uses SQLite para trastear la base de datos: Sus conexiones osn más sencillas, son fáciles de intuir, se pueden llevar en un pendrive, tiene un tamaño ligero, soporta BLOB, las consultas SQL son practicamente iguales salvo ciertas diferencias...

y por el lado malo encontramos quizas: no tiene gestor de usuarios, es menos seguro, está unificado en un archivo, con paciencia se puede incluso extraer los datos del archivo en su interior, es más propenso a inyecciones SQL... y quizás algo más se me pase por ahí