Ver Mensaje Individual
  #24  
Antiguo 23-08-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Reputación: 12
ElMug Va por buen camino
Cita:
Empezado por rretamar Ver Mensaje
Vamos a ver: la concurrencia es para operaciones de lectura, porque el hecho que te bloquee la base de datos completa (o sea el archivo completo) al realizar una escritura (aunque más no sea por fracciones de segundo) para mí la descarta en cuanto a uso multiusuario. De acuerdo, se puede mediante código hacer que la aplicación "espere" hasta que la base de datos se desbloquee (cuando otro usuario -o aplicación- escribió) y recién ahí realizar el acceso, pero eso me parece una chapuza. Funciona, pero en ese caso prefiero optar por un verdadero motor SQL cliente-servidor (¿ dije Firebird ? ). Dejemos a SQLite para lo que es, un sistema de base de datos monousuario libre, veloz, sin instalación y altamente portable...en eso no tiene rival.

Firebird en versión "embebido" también bloquea el archivo, pero tiene la ventaja que es mucho más fácil realizar la migración a la versión cliente-servidor común, porque el formato de la base de datos es el mismo.
Hola,

Para uso tupido por supuesto que es mejor una base con motor-servidor.

Pero la verdad es que TODOS ellos tambien, ponen las transacciones a "hacer fila de espera". Ninguno escribe simultaneamente al mismo lugar, o campo, o record, realmente, hay que recordarlo.

La GRAN diferencia, es que los servidores de gran rendimiento usan multiples hilos (multi-threaded), y muchos archivos (files), y hasta varios drives, para poder recoger la data que se va a guardar. Y no solo es un cpu el que trabaja, sino que hay VARIOS tipos de servidores (de servicios), tal como si fuera la servidumbre de un hotel, por ejemplo.

El SQLite se contiene todo en un solo archivo. Pero la verdad es que graba archivos temporales tambien, pues de hecho para ser atomica (la "A" de "ACID"), graba la transaccion tambien temporalmente y luego la guarda COMPLETA, o no la graba.

SQLITE hace todo ello "solita", asi que si alguien hace chapuza serian los motores "big boys".

Otra cosa importante es que SQLite se basa en que los "ques" (las esperas y locks) las administra el sistema operativo. Comparar SQLite con los big-boys es como comparar el abarrote de la esquina con un Supermercado, pero SI, ambos son multiusuarios y multiconcurrentes, fundamentalmente.

Igualmente, unas cosas son mas rapidas de adquirir en una tienda o farmacia pequeña que en un supermercado. Muchas operaciones son mas rapidas en SQLite que con los big-boys. Igualmente, si uno es mas facil ser el propietario de una tiendita que de un Supermercado, o una cadena de supermercados (que algunas bases de datos gigantes es lo que son).

Les platico que a SQlite le he hecho todo lo que puedo y se me ocurre. Incluyendo que le cargue varias fotos en Blobs y AUN le cargue dos libros completos en texto, y uno de ellos es El Quijote de Cervantes COMPLETO. Y lo puedo leer sin demoras en un DBMemo! En la MISMA base de datos meti esquemas y data que haye en la red, y las carga y maneja muy bien. Mis desarrollos muchas veces me levantaban excepciones y las ignoraba, y aun no se daña el archivo de pruebas, ya de casi dos gigabytes.

Un detalle que si tiene es que el Path a las bases de datos no debe de ser muy largo, pues luego SQLite protesta diciendo que son muchos parametros.

SQLite es la base de datos de mayor uso en el planeta (por numero de usuarios). Como los autores la hicieron del dominio publico, esta oculta donde menos piensa uno: esta en FireFox, en Google, y en la mayoria de los celulares avanzados. Tambien la Mac la trae incluida, el IPad, etc.

Otro detalle importante es que no usa passwords, y eso no es aceptable en muchisimos casos. Backup es simplemente copiar el archivo unico.

No es la solucion para todo y todos, tampoco.
Responder Con Cita