sql >> Databáze >  >> RDS >> Mysql

Jak optimalizovat ORDER BY pro vypočítaný sloupec v MASSIVE MySQL tabulce

Našel jsem 2 (jaksi zřejmé) věci, které pomohly urychlit tento dotaz na uspokojivou úroveň:

  1. Minimalizujte počet řádků, které je třeba seřadit. Použitím indexu v poli 'id' a podvýběru pro nejprve oříznutí počtu záznamů není řazení souborů ve vypočítaném sloupci tak špatné. Tj.:

    SELECT t.value1, (t.value2 * an_arbitrary_float) as SCORE
    FROM (SELECT * FROM sometable WHERE id = 1) AS t 
    ORDER BY SCORE DESC
    
  2. Zkuste zvýšit sort_buffer_size v my.conf pro urychlení těchto řazení souborů.



  1. Jak používat stejný plán pro více úloh SQL Server Agent (T-SQL)

  2. Jak funguje operátor LIKE v SQLite

  3. MySQL nahradit zástupným znakem

  4. PHP a MySQL:mysqli_num_rows() očekává, že parametr 1 bude mysqli_result, daný booleovský