trabalho com a base de dados H2, se eu tiver no meu Database, 1 milhão de registros únicos, qual a maneira mais eficiente de fazer um select simples do tipo
SELECT campo FROM tabela
quando me refiro a eficiência, gostaria de saber se tem como efetuar a consulta de maneira rápida e sem consumir muita RAM
eu criei um índice para a tabela, mas tb fiquei na duvida se o SGBD usa o índice de forma automática ou se eu tenho que acrescentar algum código para a utilização
Se queres fazer um SELECT campo FROM tabela não há índice nem nada que te valha. Vais correr toda a tabela e trazer registos de todas as linhas.
Agora se o que tu queres (e eu acredito que seja) é SELECT campo FROM tabela WHERE condicao=qq_coisa aí os índices poderão ajudar-te, dependendo das condições que tu coloques e dos índices que tu tenhas.
Se a consulta for exatamente assim, eu acho que só deveria considerar em sua lógica o uso de um MAX na sua consulta. Porque veja bem, qual a necessidade de retornar 1 milhão de registros num único retorno?
A utilização de NamedQuery para queries que se repetem durante o ciclo de vida da aplicação melhoram o desempenho.Dê uma lida sobre a declaração das NamedQuery na classe que representa a Entidade,e como se dá a execução das mesmas.