O SQLite é bem rápido - -
mas salvo engano, o correto para ele é usar _UMA_ conexão, e não o
máximo de conexões possíveis.
A idéia do SQLite é que seja umbanco de dados embutido "no processo", ou seja,
as funções para queries são chamadas dentro do próprio processo que
está usando o banco,
e devolvem direto os dados. A "conexão" então significa: o arquivo
que contem o DB está aberto.
Possivelmente, o jeito do SQLite lidar com as várias conexões que você
está forçando
é colocar um lock no arquivo, de forma que uma query só vai poder ser
completada quando
acabar uma query anterior.
No caso então ou você usa o MySQL (MariaDB) ou PostgresSQL - que podem
gerenciar várias
conexões simultâneas já que tem seus próprios processos para
gerênciar as conexões,
ou re-escrever seu sistema para ter apenas um processo falando com o
SQLite - e você
se comunica com ele com xmlrpc ou jsonrpc, por exemplo. Ou mesmo
multiprocessing, mas aí
acho que dá mais trabalho fazer todos os seus outros processos acharem
a mesma instância do
processo do banco de dados. (note que nesse caso, o jeito mais
simples é fazer as consultas "sincronas":
ou seja, uma chamada ao banco já faz a query e retorna todo o conjunto
de resultados ("cursor.fetchall")).
Claro que as suas consultas aobanco ficam sequênciais do mesmo jeito,
mas some o overhead do sqlite ter que lidar com locks para os quais
ele não foi feito.
Outras duas coisas: se mudar para MariaDB ou PostgreSQL - nem sempre
"o maior número de conexões possível" é a melhor coisa. E por fim, o
mais óbvio, se você aidna não viu: se o banco está lento, verifique os
índices que você está usando. Uma consulta por um único critério que
não esteja indexado pode ser degradada em várias ordens de grandeza
assim que o banco começa a ficar maiorizinho (e maiorzinho não é
muito grande não: 1000 registros já podem deixar uma consulta sem
índice umas 200x mais lenta, em média)
js
-><-
>
> --
> --
> ------------------------------------
> Grupo Python-Brasil
>
http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
>
http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
>
python-brasi...@googlegroups.com
>
> ---
> Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos
> Grupos do Google.
> Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie
> um e-mail para
python-brasi...@googlegroups.com.
> Para mais opções, acesse
https://groups.google.com/d/optout.