sql >> Database teknologi >  >> RDS >> Mysql

Hvordan man optimerer en ORDER BY for en beregnet kolonne på en MASSIV MySQL-tabel

Jeg har fundet 2 (slags åbenlyse) ting, der har hjulpet med at fremskynde denne forespørgsel til et tilfredsstillende niveau:

  1. Minimer antallet af rækker, der skal sorteres. Ved at bruge et indeks på 'id'-feltet og et undervalg til at trimme antallet af poster først, er filsortering i den beregnede kolonne ikke så dårlig. Dvs:

    SELECT t.value1, (t.value2 * an_arbitrary_float) as SCORE
    FROM (SELECT * FROM sometable WHERE id = 1) AS t 
    ORDER BY SCORE DESC
    
  2. Prøv at øge sort_buffer_size i my.conf for at fremskynde disse filsorteringer.



  1. java.sql.SQLEundtagelse:Efter slutningen af ​​resultatet sat i mysql

  2. Tabel eksisterer ikke efter CREATE TABLE

  3. Hvad svarer til varchar(max) i Oracle?

  4. Sådan gendannes MySQL Galera Cluster fra en asynkron slave