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

MySQL - hvor længe skal man oprette et indeks?

Der er et par faktorer at overveje:

  • Sortering er en N.log(N)-handling.
  • Sorteringen for 14M rækker kan godt passe i hovedhukommelsen; sorteringen med 500 mio. rækker gør det sandsynligvis ikke, så sorteringen spildes til disk, hvilket bremser tingene enormt.

Da faktoren er omkring 30 i størrelse, ville den nominelle sorteringstid for det store datasæt være i størrelsesordenen 50 gange så lang - under to timer. Du har dog brug for 8 bytes pr. dataværdi og ca. yderligere 8 bytes overhead (det er et gæt - tune ind på mySQL, hvis du ved mere om, hvad det gemmer i et indeks). Altså 14M × 16 ≈ 220 MB hovedhukommelse. Men 500M × 16 ≈ 8 GB hovedhukommelse. Medmindre din maskine har så meget hukommelse til overs (og MySQL er konfigureret til at bruge den), så spildes den store slags til disken, og det tegner sig for meget af resten af ​​tiden.



  1. Find ud af, hvilket kvartal en date tilhører i Oracle

  2. Ydeevne af tabelvariabler i SQL Server

  3. Hvordan kalder man en Oracle-funktion fra Hibernate med en returparameter?

  4. Fire måder at bruge Microsoft Access på