Se eu estiver consultando um banco de dados para selecionar todos os registros que têm um VARCHAR()
campo igual a um parâmetro de consulta. Há alguma vantagem de velocidade em fazer uma pesquisa linear linha por linha de um "banco de dados" de arquivo simples? Se sim, como essa aceleração é realizada?
Como você está usando dados varchar, a localização de cada um dos seus campos dentro do arquivo não está bem definida. Há uma sobrecarga na "análise" de cada linha do arquivo para localizar o campo no qual você deseja filtrar.
Em uma tabela de banco de dados, a localização de cada campo é bem definida, tornando mais rápido localizar cada valor.
E/S de arquivo de baixo nível também pode ser mais rápida, já que a tabela será lida do disco em blocos [maiores] [de banco de dados].
Ler um arquivo linha por linha geralmente será mais lento.
Consultas subsequentes na mesma tabela podem ser ainda mais rápidas, porque o I/O do arquivo pode ser eliminado completamente, com os blocos do banco de dados sendo armazenados em cache em um Buffer na memória dentro do banco de dados. A filtragem agora é feita toda na memória.
Ler de um arquivo sempre... bem... lerá do arquivo, o que será mais lento do que a atividade na memória.
Bancos de dados permitem que muitos processos leiam (e até mesmo gravem) a mesma tabela ao [quase] mesmo tempo. Lidar com esse tipo de contenção no nível de arquivo é terrivelmente complicado.