Como conectar sqlite sobre internet-vbforums artrite espinhal em cães

SQLite para um serviceta web repousante O conselho de 3 anos de um usuário de stackoverflow aleatório é bastante embaraçoso, mesmo para alguém com uma agenda. O SQLite passou por liberações de 17 pontos desde que a resposta foi postada anonimamente. A resposta nem faz muito sentido – "mais do que alguns" não é uma quantidade útil, e não há nenhum período de tempo mencionado para quando "mais do que alguns" atualizações podem ser um problema (por segundo? Por minuto? Por quê?). Mesmo se olharmos para a questão da SO "O sqlite pode lidar com 10 milhões de solicitações por mês?" e suponha que todos os 10 milhões de solicitações sejam atualizações, isso equivale a cerca de 3-4 atualizações por segundo. Isso seria aceitável considerando distribuição relativamente uniforme, a menos que as atualizações sejam anexadas a disparadores pesados ​​ou a funções definidas pelo usuário.

Não estou dizendo que o sqlite é necessariamente uma boa escolha para 10 milhões de atualizações por mês, mas estou disposto a apostar que o OP não está olhando para nada perto desse nível. Pepegriyo2016 teria que descrever seu caso de uso com um pouco mais de detalhes se quisesse obter conselhos úteis de uma forma ou de outra.

O SQLite funciona muito bem como o mecanismo de banco de dados para a maioria dos sites de baixo a médio tráfego (ou seja, a maioria dos sites). A quantidade de tráfego da web que o sqlite pode manipular depende de quão fortemente o site usa seu banco de dados. De modo geral, qualquer site que obtiver menos de 100 mil acessos / dia deve funcionar bem com o sqlite. O número de 100K ocorrências / dia é uma estimativa conservadora, não um limite superior rígido. O SQLite demonstrou trabalhar com 10 vezes essa quantidade de tráfego.

O site sqlite (https://www.Sqlite.Org/) usa o próprio sqlite, é claro, e até o momento desta publicação (2015) ele lida com pedidos HTTP de 400K a 500K por dia, dos quais cerca de 15-20% são dinâmicos páginas tocando o banco de dados. O conteúdo dinâmico usa cerca de 200 instruções SQL por página da web. Essa configuração é executada em uma única VM que compartilha um servidor físico com outras 23 e ainda mantém a média de carga abaixo de 0,1 na maioria das vezes.

Então, em 2015 (mesmo ano, a resposta questionável stackoverflow) o próprio site sqlite, usando o sqlite como um banco de dados para cerca de 15-20% do seu tráfego. Isso seria em torno de 75.000 solicitações por dia, ou cerca de 2,25 milhões de solicitações por mês naquele momento, cada uma delas atingindo 200 instruções SQL para um total de ~ 450.000.000 declarações SQL por mês – todas com uma média de carga baixa. Esses pedidos seriam, sem dúvida, principalmente selecionados, mas, na minha experiência, a maioria do tráfego seria seletiva, com uma porcentagem muito menor de atualizações. Mesmo que o sqlite pudesse processar apenas 1% dos pedidos como atualizações que ainda seriam ~ 4,5 milhões de atualizações por mês.

Enquanto os 4 sqlite-workers alcançaram um timing muito mais rápido com uma carga total de CPU de apenas 75% … O SQL Server pode paralelizar um único pedido e executá-lo em múltiplos núcleos, i.E. Pode atingir 100% de uso da CPU a partir de um único cliente de thread único em algumas situações. Mas raramente vejo 100% de uso em servidores de aplicativos ou de banco de dados. Normalmente, a carga de trabalho é limitada por E / S ao trabalhar com bancos de dados / caches, a menos que o cache esteja 100% na RAM (por exemplo, configuração do Redis).

De qualquer forma, sobre seus testes – você percebe que estes são puramente sintéticos. Eu fiz alguns testes internos em esquema de trabalho / carga real com sqlite vs postgres vs MSSQL com a idéia de substituir o último e eu tentei muito como a motivação para substituir a versão comercial é obviamente monetária. . . Infelizmente, a MS fez muito trabalho no otimizador de consultas e é praticamente imbatível para qualquer consulta moderadamente complexa. Quero dizer postgres impl apenas operador físico de loop aninhado para junções, isso é incapacitante para quaisquer tabelas de tamanho moderado. E, em seguida, a DLL sqlite é meio meg enquanto sqlservr.Exe é 57MB – há mais cérebros em um desses. . .