JCBox AutoCompletar e MySQL-- como melhorar o desempenho--Conceito[DUVIDA]

5 respostas
T

eu tentei ser o mais claro possivel no assunto sem escrever muito,espero que nao tenha ficado vago.

Eu estou fazendo o auto completar de um componente (JComboBox no caso), o usuario digita algo e é feita uma busca no banco por
campos correspondendes…ai vem o problema de desempenho.

Para dar um “efeito mais legal” na hora de preencher os dados,para cada letra que o usuario digita, é feita uma busca, e o componente tenta “adivinhar” oque o usuario quer digitar.Para bancos com poucas linha tudo bem,fica até bonito de ver funcionando,o problema é quando o banco é grande(i.e. procurar ruas por cep naquele banco dos Correios) usando esse metodo letra por letra fica um nojo,super lento mesmo usando “limits 0,5”.

Estou precisando de ajuda com o conceito,não quero codigos prontos (apesar de serem bem vindos se bem comentados),quero ajuda com ideias,já que “letra por letra” esta ficando inviavel,porem quero manter o mesmo “efeito”,com um banco pequeno mesmo da maneira errada fica quase em tempo real e eu gostaria de manter este efeito.

5 Respostas

mario.fts

vc já tentou usar cache de segundo nível ? EhCache do hibernate talvez. acho que com algum tempo analisando o comportamento do seus usuários vc poderia configurar ele pra atender bem os casos mais frequentes pelo menos.

T

passando isso pro mysql,seria talvez guardar a(s) primeira(s) busca(s) em objetos na memoria,e nas proximas buscar direto no componente?

R

O campo que você está buscando no campo é indexado? Caso não seja, creio que criar um índice dará um ganho significativo.

mario.fts

SE vc estiver utilizando hibernate em sua aplicação, vc pode utilizar o recurso de cache de segundo nível, ele armazena o resultado de algumas consultas(de acordo com as suas configurações) em memória, e quando vc for buscar no banco, o própio hibernate identifica que os dfados já estão em memória e traz os resutlados mais rapidamente.

http://www.devx.com/dbzone/Article/29685

Achei alguma coisa falando de usar o Ehcache sem o hibernate, mas nunca fiz assim. Segue o link: http://faler.wordpress.com/2009/03/23/caching-observations-ehcache-with-hibernate-vs-ehcache-without-hibernate/

[]'s

T

valew vou dar uma olhada no hibernate, eu achava que era proprietario,por isso nunca fui atraz,agora que sei que é open source ja vale a pena tentar usa-lo.

Criado 22 de dezembro de 2009
Ultima resposta 22 de dez. de 2009
Respostas 5
Participantes 3