Respostas:
No pior caso, quando você está olhando para um campo não indexado, o uso MIN()requer uma única passagem completa da tabela. Usando SORTe LIMITrequer um filesort. Se executado em uma mesa grande, provavelmente haverá uma diferença significativa no desempenho percebido. Como um ponto de dados sem sentido, MIN()demorou 0,36s SORTe LIMIT0,84s contra uma tabela de 106.000 linhas no meu servidor de desenvolvimento.
Se, no entanto, você estiver olhando para uma coluna indexada, a diferença é mais difícil de notar (o ponto de dados sem sentido é 0,00s em ambos os casos). Olhando para a saída de explain, no entanto, parece que MIN()é capaz de simplesmente extrair o menor valor do índice ('Selecionar tabelas otimizadas' e linhas 'NULL') enquanto o SORTe LIMITainda precisa fazer uma travessia ordenada do índice (106.000 linhas). O impacto real no desempenho é provavelmente insignificante.
Parece que MIN()é o caminho a seguir - é mais rápido no pior caso, indistinguível no melhor caso, é SQL padrão e expressa mais claramente o valor que você está tentando obter. O único caso em que parece que usar SORTe LIMITseria desejável seria, como mson mencionou, onde você está escrevendo uma operação geral que encontra os valores N superior ou inferior de colunas arbitrárias e não vale a pena escrever a operação de caso especial.
SELECT MIN(`field`)
FROM `tbl`;
Simplesmente porque é compatível com ANSI. O Limite 1 é específico para MySql, assim como TOP é para SQL Server.
Como mson e Sean McSomething apontaram, MIN é preferível.
Um outro motivo pelo qual ORDER BY + LIMIT é útil é se você deseja obter o valor de uma coluna diferente da coluna MIN.
Exemplo:
SELECT some_other_field, field
FROM tbl
ORDER BY field
LIMIT 1
Acho que as respostas dependem do que você está fazendo.
Se você tiver uma consulta 1 desativada e a intenção for tão simples quanto você especificou, selecione min (campo) é preferível.
No entanto, é comum ter esses tipos de requisitos mudando para - pegue os n primeiros resultados, pegue os n resultados - mésimos, etc.
Não acho que seja uma ideia terrível se comprometer com o banco de dados escolhido. Mudar o banco de dados não deve ser feito levianamente e tem que revisar é o preço que você paga ao fazer esta mudança.
Por que se limitar agora, pela dor que você pode ou não sentir mais tarde?
Eu acho que é bom permanecer ANSI o máximo possível, mas isso é apenas uma diretriz ...
Dado o desempenho aceitável, eu usaria o primeiro porque é semanticamente mais próximo da intenção.
Se o desempenho fosse um problema (a maioria dos otimizadores modernos provavelmente otimizará ambos para o mesmo plano de consulta, embora você precise testar para verificar isso), então é claro que eu usaria o mais rápido.