• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pedrotuga

sqlite ao máximo

6 mensagens neste tópico

Pessoal, vou aqui partilhar uma experiencia que tive com o uso de sqlite.

sqlite é um software de bases de dados bem cool especialmente desenhado para aplicações portaveis. É basicamente uma biblioteca de C que permite usar SQL e que guarda os dados num único ficheiro.

Não é indicado para bases de dados grandes pois não tem uma 'camada de rede' permitindo apenas conectividade local. E como armazena os dados num único ficheiro por bases de dados tambem nao seria possivel usa-la para grandes bases de dados de qualquer das formas.

Outra vantagem é o faco de vir embutida no PHP5, linguagem que uso extensivamente.

Os backups tambem são muito simples, copiar um ficheiro e está o backup feito.

Por razões de conveniencia, segurança e curiosidade, decidi usar esta base de dados num site que mantenho. É um site de conteudo muito dinâmico que tem em média 10 utilizadores ligados. A base de dados portou-se bem, sempre a responder bem, ligeiramente mais lenta que o mysql mas de uma forma geral aguentou-se bem. como o site está num servidor partilhado, era comum o servidor de mysql ficar lento devido a utilizações demasiado intensas de outros utilizadores. Foi aí que o sqlite marcou pontos, sempre se manteve a funcionar suavemente, ainda que as vezes um pouco lento, em particular quando recebia instruções UPDATE.

O site lá foi funcionando sem problemas, até que a base dados atingiu 50MB. Aí é que começaram os problemas... os updates começaram a demorar muito tempo, enquanto isso outros utilizadores iam fazendo outros pedidos e a base de dados encravava toda e eventualmente trancava.

Apesar disto considero o desempenho deste software muito bom. Afinal de contas 50 megas num ficheiro que é acedido uma vez por segundo.. não há milagres. Por outras palavras: foi atingido o limite de escalabilidade (palavrão).

A minha experiencia não acabou sem a cerejinha no topo!

Para migrar a minha base de dados para mysql fiz um dump, usando o meu computdor que é um athlon com 4 anos de idade. Eu pensava que o meu computador se ia encravar todo e demorar muito tempo a criar o ficheiro com o SQL. Para surpresa minha, o dump de uma base de dados de 50 megas para sql demorou cerca de um segundo e precisou apenas de um comando

sqlite aminhabd.db .dump > aminhabd.sql

cool.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Com dificuldades a efectuar processamentos em ficheiros de 50 MB não me parece aceitável. Devia ser um pouco mais inteligente.

BD's mesmo pequenas ultrapassam facilmente os 50MB

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu acho bom. Estamos a falar de acessos concorrentes a um ficheiro. Tipo... se tenho 20 utilizadores a nevegar num site e cada um, a cada clique que faz lê e escreve no tal ficheiro de 50 megas...Acho que não se pode exigir muito mais do que isso. Para isso é que existem outros SGBDS.

Se fossem tipo 5 utilizadores.. agora 20 ao mesmo tempo, mantendo a 'ACIDez' da bd só com leitura e escrita num único ficheiro... acho que não é possivel muito melhor que isso.

ok.. para dizer a verdade um segundo ficheiro pode ser utilizado, mas a base de dados está sempre INTEGRALMENTE num ficheiro

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Possível certamente que é, tudo depende da forma como o sistema está implementado.

Os SGBD normalmente utilizam um file para cada DB, mas isso pouco interessa, interessa sim a forma como está organizado.

Certamente que ainda faltam implementar muitos processos para que fique aceitável. Mas temos de começar por algum lado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Permite-me que te corrija:

Acho que querias dizer um ficheiro POR TABELA, o que é bem diferente e basicamente faz toda a diferença. Aliás, é nisso que o a teoria de bases de dados assenta. Guardar isolar a informação de peso da informação sobre a informação de forma a que esta ultima seja de rapida manipulação para poder aceder facilmente à primeira.

Mas de qualquer dos modos... nem sequer é um ficheiro por tabela. Normalmente são 3, às vezes dois, isto para não falar de logs e afins.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já ouvi falar muito bem do sqlite mas o que gostava mm de saber era  opiniões acerca do Firebird. Não conheci até hoje ninguém que usasse... :|

Li algures 200Tera de dados numa BD... não me recordo onde... :(

Se alguém já tiver usado deixe aí um feedback num post :D

1abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora