Muitas estruturas da web, como Flask ou Django, usam SQLite como seu banco de dados padrão. O SQLite é atraente porque está incluído no python, e a sobrecarga administrativa é bastante baixa.
No entanto, a maioria dos sites de produção pública de alto tráfego acaba usando um banco de dados mais pesado: mySQL, Oracle ou postgresql.
As perguntas :
Assumir:
- O tráfego do site é moderado e o acesso simultâneo de leitura / gravação ao banco de dados ocorrerá
- Usaremos SQLAlchemy com bloqueios de gravação SQLite (embora esse comentário me deixe um pouco nervoso)
- O banco de dados conterá talvez 60.000 registros
- As estruturas de dados não exigem recursos avançados encontrados em bancos de dados mais pesados
Existe um caso convincente contra a concorrência SQLite para sites que servem como ferramentas corporativas internas de tráfego moderado? Em caso afirmativo, quais condições farão com que o SQLite tenha problemas de simultaneidade?
Estou procurando causas-raiz específicas conhecidas, em vez de medo geral / apontamento sem fundamento dos dedos.
sql
frameworks
scalability
web-framework
sqlite
Mike Pennington
fonte
fonte
Respostas:
Eu recomendo a leitura da resposta oficial à sua pergunta, Usos apropriados para SQLite . Especificamente, as "Situações em que outro RDBMS pode funcionar melhor" avisa que o SQLite não oferece suporte à gravação simultânea:
Do ponto de vista da adequação, costumo ver o SQLite como um formato de arquivo muito sofisticado que suporta consultas SQL. Eu tenderia a evitar o SQLite se quisesse separar meu banco de dados do meu aplicativo da Web, pois não é otimizado para este caso. Em suma, o SQLite é insuficientemente escalável para uso em alguns cenários; portanto, as pessoas que executam sites que esperam algum dia se tornar populares podem ter uma melhor idéia começando com algo escalável, em vez de usar o SQLite e depois serem forçadas a mudar.
Tudo isso dito, o SQLite provavelmente é bom para a maioria dos sites internos; sites geralmente internos não exigem o mesmo nível de simultaneidade e escalabilidade.
fonte
Colocando meu chapéu de diretor de TI, vejo alguns não-gos aqui:
Do ponto de vista do desenvolvedor, acho importante saber por que o SqlLite é o padrão - é por ser fácil e demonstrar bem. Se você está "vendendo" uma plataforma para novos desenvolvedores, é fundamental ativar um aplicativo da web que funcione com o mínimo de esforço. E ter que se levantar e configurar adequadamente um servidor de banco de dados seria um enorme obstáculo a ser evitado.
fonte