:: DEVELOPER ZONE
Em geral, quando você desejar tornar uma consulta lenta SELECT ... WHERE
mais rápida, a primeira coisa que deve ser conferida é se você pode ou não
adicionar um índice. See Secção 5.4.3, “Como o MySQL Utiliza Índices”. Todas as referências
entre diferentes tabelas devem ser feitas normalmente com índices. Você pode
utilizar o comando EXPLAIN para determinas quais índices são usados
para uma SELECT. See Secção 5.2.1, “Sintaxe de EXPLAIN (Obter informações sobre uma SELECT)”.
Algumas dicas gerais:
Para ajudar o MySQL a otimizar melhor as consultas, execute myisamchk --analyze em uma tabela depois dela ter sido carregada com dados relevantes.
Isto atualiza um valor para cada parte do índice que indica o número médio de
registros que tem o mesmo valor. (Para índices únicos, isto é sempre 1,
é claro). O MySQL usará isto para decidir qual índice escolher quando você
conectar duas tabelas utilizando uma 'expressão não constante'. Os resultados
de analyze podem ser conferidos utilizando SHOW INDEX FROM nome_tabela e examindo a coluna Cardinality.
Para ordenar um índice e dados de acordo com um índice, utilize myisamchk --sort-index --sort-records=1 (se você deseja ordenar pelo índice 1). Se você
possui um índice unico no qual deseja ler todos registros na ordem do índice,
esta é uma boa forma para torná-lo mais rápido. Perceba entretanto, que esta
ordenação não foi escrita de maneira otimizada e levará muito tempo em
tabelas grandes!
© 1995-2005 MySQL AB. All rights reserved.
