Infelizmente nos dedicamos tanto na hora de desenvolver, que não nos aprofundamos nas características que oferecem cada ferramenta.
E as melhores práticas entram exatamente ai. Neste primeiro post desta categoria, vamos comentar sobre o uso do comando Select em uma base de dados Mysql, que com algumas otimizações podemos ter resultados bem mais rápidos.
Busca de Palavras
/* Muito rápida */
SELECT * FROM tabela WHERE MATCH (`campo`) AGAINST (‘palavra’)
/* Rápida */
SELECT * FROM tabela WHERE MATCH (`campo`) AGAINST (‘+palavra’ IN BOOLEAN MODE)
/* Lentas */
SELECT * FROM tabela WHERE RLIKE ‘(^| +)palavra($| +)’
/* Super lenta */
SELECT * FROM tabela WHERE RLIKE ‘([[:space:]]|[[:<:]])palavra([[:space:]]|[[:>:]])’
Busca de Conteúdo
/* Muito rápida */
SELECT * FROM tabela WHERE MATCH (`campo`) AGAINST (‘palavra*’ IN BOOLEAN MODE)
/* Rápida */
SELECT * FROM tabela WHERE FIELD LIKE ‘palavra%’
/* Lentas */
SELECT * FROM tabela WHERE MATCH (`campo`) AGAINST (‘*palavra*’ IN BOOLEAN MODE)
/* Super lenta */
SELECT * FROM tabela WHERE campo LIKE ‘%palavra%’
Número de registros
/* Muito rápida */
SELECT SQL_CALC_FOUND_ROWS * FROM tabla WHERE condición LIMIT 0, 10
SELECT FOUND_ROWS()
/* Rápida */
SELECT * FROM tabela WHERE condicao LIMIT 0, 10
SELECT COUNT(chave) FROM TABELA WHERE condicao
Fonte: PHP Mysql tips
muito bom este tópico sobre as melhores praticas, mandou bem meu véio.
não conhecia MATCH .. preciso estudar mais.
não entendi SQL_CALC_FOUND_ROWS .. é um comando ? ainda não pesquise ;D