Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como otimizar um ORDER BY para uma coluna computada em uma tabela MASSIVE MySQL


Eu encontrei 2 coisas (mais ou menos óbvias) que ajudaram a acelerar essa consulta a um nível satisfatório:

  1. Minimize o número de linhas que precisam ser classificadas. Usando um índice no campo 'id' e uma subseleção para cortar o número de registros primeiro, a classificação do arquivo na coluna computada não é tão ruim. Ou seja:
    SELECT t.value1, (t.value2 * an_arbitrary_float) as SCORE
    FROM (SELECT * FROM sometable WHERE id = 1) AS t 
    ORDER BY SCORE DESC
    

  2. Tente aumentar sort_buffer_size em my.conf para acelerar esses tipos de arquivos.