Assine:
RSS do Blog...

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

Related posts:

  1. Comparando valores Boolean no Postgresql
  2. Revista Super Interessante – Abril 2007
  3. Revistas – Istoé – Veja e Super Interessante
  4. MySQL Proxy – Otimizador de Banco de Dados
  5. Revista Super Interessante Fevereiro e Março de 2007

2 Responses to “Best Practice: Select lentas, rápidas e super-rápidas.”

  1. claudemar says:

    muito bom este tópico sobre as melhores praticas, mandou bem meu véio.

  2. não conhecia MATCH .. preciso estudar mais.

    não entendi SQL_CALC_FOUND_ROWS .. é um comando ? ainda não pesquise ;D

Leave a Reply