Należy wziąć pod uwagę kilka czynników:
- Sortowanie to operacja N.log(N).
- Sortowanie dla 14M wierszy może dobrze zmieścić się w pamięci głównej; sortowanie z 500 M wierszami prawdopodobnie nie, więc sortowanie rozlewa się na dysk, co ogromnie spowalnia.
Ponieważ współczynnik ma wielkość około 30, nominalny czas sortowania dla zbioru dużych zbiorów danych byłby rzędu 50 razy dłuższy – poniżej dwóch godzin. Jednak potrzebujesz 8 bajtów na wartość danych i około 8 bajtów narzutu (to jest przypuszczenie - przejdź do mySQL, jeśli wiesz więcej o tym, co przechowuje w indeksie). A więc 14M × 16 ≈ 220 MB pamięci głównej. Ale 500M × 16 ≈ 8 GB pamięci głównej. O ile twoja maszyna nie ma tak dużo wolnej pamięci (a MySQL jest skonfigurowany do jej używania), wtedy wielkie sortowanie rozlewa się na dysk i to stanowi większość reszty czasu.