sql >> Database >  >> RDS >> Mysql

MySQL - hoe lang duurt het om een ​​index te maken?

Er zijn een aantal factoren waarmee u rekening moet houden:

  • Sorteren is een N.log(N)-bewerking.
  • De sortering voor rijen van 14 miljoen past misschien wel in het hoofdgeheugen; de sortering met 500 miljoen rijen waarschijnlijk niet, dus de sortering komt op de schijf terecht, wat de zaken enorm vertraagt.

Aangezien de factor ongeveer 30 groot is, zou de nominale sorteertijd voor de grote dataset in de orde van 50 keer zo lang zijn - minder dan twee uur. U hebt echter 8 bytes per gegevenswaarde nodig en nog ongeveer 8 bytes overhead (dat is een gok - stem af op mySQL als u meer weet over wat het opslaat in een index). Dus 14M × 16 ≈ 220 MB hoofdgeheugen. Maar 500M × 16 ≈ 8 GB hoofdgeheugen. Tenzij je machine zoveel geheugen over heeft (en MySQL is geconfigureerd om het te gebruiken), dan komt de grote hoeveelheid naar de schijf en dat is goed voor een groot deel van de rest van de tijd.



  1. Django-modellen:standaardwaarde voor kolom

  2. Hoe pg_config pad te vinden

  3. Tabel bijwerken met SUM uit een andere tabel

  4. Hoe selecteer je een specifieke kolom uit de kamerdatabase met een specifieke parameter in de kamerquery?