Öne Çıkan
Büyük tablolarda RAND() fonksiyonunun veritabanı performansına etkileri
Mar 21, 2019

Veritabanından rastgele sonuçlar getirmek için genelde şöyle bir sorgu kullanırız

SELECT * FROM deneme ORDER BY RAND() LIMIT 5

Bu sorgu deneme tablosundan 5 adet rastgele sonuç getirir. Fakat bu rastgele sonuçlar getirmek için çok kötü bir yol.

Tablonuzda 100-200 kayıt varsa problem yok da ya yüzbinlerce kayıt varsa?

Diyelim ki 50 bin satırlık bir tablomuz var ve RAND() fonksiyonu yardımıyla böyle bir sorgu çalıştırdık, arka planda neler olur? 50 bin satırın her biri için random bir sayı oluşturulur, tüm tablo buna göre sıralanır ve istediğiniz kesit bundan sonra getirilir! Tablonuz ne kadar büyükse veritabanına yükleyeceğiniz yük o kadar artacaktır. Tablo büyüdükçe sorgu hızı bakın nasıl düşüyor.

Yazar/CÆM/
bytes are my bullets
kverti
{"currency":[{"name":"US Dollar","abbr":"usd","symbol":"$","type":"fiat","priceBtc":289.85311578250003}],"appuser":null}