Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL - jak długo tworzyć indeks?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kopiowanie baz danych mysql z jednego komputera na drugi

  2. Importuj dane z arkusza kalkulacyjnego Excel lub CVS do MySQL

  3. Laravel nie może usunąć ani zaktualizować wiersza nadrzędnego:ograniczenie klucza obcego nie powiodło się

  4. Jak zrobić zbiorcze wstawianie w MySQL?

  5. Ochrona hasła MySQL podczas programowania w Pythonie?