sql >> Database >  >> RDS >> Mysql

Een ORDER BY optimaliseren voor een berekende kolom op een MASSIVE MySQL-tabel?

Ik heb 2 (soort van voor de hand liggende) dingen gevonden die hebben geholpen om deze zoekopdracht naar een bevredigend niveau te brengen:

  1. Minimaliseer het aantal rijen dat moet worden gesorteerd. Door een index op het 'id'-veld te gebruiken en een subselect om eerst het aantal records bij te knippen, is de bestandssortering op de berekende kolom niet zo slecht. Dwz:

    SELECT t.value1, (t.value2 * an_arbitrary_float) as SCORE
    FROM (SELECT * FROM sometable WHERE id = 1) AS t 
    ORDER BY SCORE DESC
    
  2. Probeer de sort_buffer_size te vergroten in my.conf om die bestandssorteringen te versnellen.



  1. Hoe kan ik een UPDATE-instructie doen met JOIN in SQL Server?

  2. Verschil tussen sys.parameters, sys.system_parameters en sys.all_parameters in SQL Server

  3. FIND_IN_SET met meerdere waarden

  4. Database maken bij opstarten docker-compose