2010-10-05 12 views
5

Tengo una base de datos de 50 MB de tamaño en SQLite 3. Se accede a todos los objetos db a través de un servicio web. Es SQLite una buena opción para un uso simultáneo en línea de aproximadamente 500 usuarios paralelos.SQLite es adecuado para el uso del sitio web

NOTA: los usuarios utilizarán las mismas tablas pero no las mismas filas. Cada usuario puede ver/actualizar/borrar solo sus datos.

+3

¿Qué quiere decir paralelo? ¿En línea al mismo tiempo, o habrá 500 identificadores de archivos en la base de datos? – Novikov

Respuesta

12

SQLite por lo general será un gran trabajo como el motor de base de datos de baja a sitios web de tráfico medio (que es decir, 99,9 % de todos los sitios web). La cantidad de tráfico web que puede manejar SQLite depende, por supuesto, de la cantidad de veces que el sitio web utiliza su base de datos. En términos generales, cualquier sitio que obtenga menos de 100.000 visitas/día debería funcionar bien con SQLite. La cifra 100K hits/day es una estimación conservadora, no un límite superior difícil. Se ha demostrado que SQLite funciona con 10 veces esa cantidad de tráfico.

(Source)

+7

Aquí hay alguien que realmente lo probó http://stackoverflow.com/questions/54998/how-scalable-is-sqlite – Nifle

+1

100K hits por día es 1.15 visitas por segundo (3-4 asumiendo un día laboral de 8 horas). Un sitio web con 500 usuarios simultáneos recibirá más de 100 a 500 visitas por segundo. – tster

+0

@tster - Suena bien. Solo estaba proporcionando datos, no ofreciendo una opinión. – Nifle

3

De acuerdo con la wikipedia SQLLite será fail a write si hay algún acceso concurrente a la base de datos. Esto solo me hace pensar que no es utilizable para 500 usuarios simultáneos.

A menos que apenas haya actualizaciones en curso. Creo que 500 usuarios simultáneos son sin duda suficientes para evitar un DBMS completo.

Tenga en cuenta que parece que el artículo de la wikipedia es incorrecto (en realidad es muy común en la wikipedia). De todos modos, si esos 500 usuarios van a estar actualizando mucho, todavía estaría cansado de 500 usuarios concurrentes con 0 escrituras concurrentes. Si bien los números en el hilo al que hace referencia Nifle suenan bien, es muy probable que provengan de pruebas que están diseñadas para hacer que sqllite se vea bien. Dudo obtendrá el mismo kilometraje con todas las consultas, todos los tamaños de mesa, todos los estados de caché, etc.

+0

Sqlite no fallará si habilita las transacciones y usa correctamente los bloqueos. Esto se hace de forma correcta y transparente por un ORM decente, pero también es una buena práctica. – alexroat

-2

MySQL es una opción mucho mejor para los servidores web.
SQLite no está instalado por defecto en la mayoría de los servidores, mientras que MySQL a menudo está instalado.
MySQL tiene administración de transacciones por lo que es adecuado para múltiples escrituras concurrentes.

+0

Más información definitiva https://www.sqlite.org/whentouse.html –

+1

Obviamente SQLite es más simple que MySQL, postgresql, Oracle ... Es solo una biblioteca de 200kb. el hecho de que sqlite no está presente está equivocado, de hecho, la cantidad de puertos de sqlite es superior a la de MySQL u otros motores de DB. El hecho de que no esté instalado por defecto no es relevante teniendo en cuenta que cada servidor requiere un administrador del sistema que lo configure con el software requerido. Eso es en mi humilde opinión. – alexroat

Cuestiones relacionadas