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

MySQL vælger hurtigt 10 tilfældige rækker fra 600.000 rækker

Et fantastisk indlæg, der håndterer adskillige sager, fra simple, til huller, til uensartede med huller.

http://jan.kneschke.de/projects/mysql/order- by-rand/

For de fleste generelle tilfælde gør du sådan her:

SELECT name
  FROM random AS r1 JOIN
       (SELECT CEIL(RAND() *
                     (SELECT MAX(id)
                        FROM random)) AS id)
        AS r2
 WHERE r1.id >= r2.id
 ORDER BY r1.id ASC
 LIMIT 1

Dette forudsætter, at fordelingen af ​​id'er er ens, og at der kan være huller i id-listen. Se artiklen for mere avancerede eksempler



  1. Regulært udtryk find og erstat i Postgres

  2. Top måder at øge databaseeffektiviteten

  3. Undgå knee-Jerk Performance fejlfinding

  4. SQL Server Indexes Management Brug af Index Manager til SQL Server