Hvordan øke hastigheten på spørringer på Extremely Large MySQL tabeller
MySQL er en database program fritt distribuert for nettsteder. Som en tabell i en database vokser, kan noen av spørringene skade ytelsen på nettstedet. Av denne grunn er det viktig å finpusse databasespørringer for best mulig ytelse. Det finnes noen måter å forbedre ytelsen for MySQL spørringer. Disse tweaks inkluderer endringer til MySQL tabeller og spørringen uttalelser. Slike tilpasninger kan øke ytelsen med flere sekunder eller minutter.
Bruksanvisning
1 Lag en indeks på bordet brukes i MySQL spørring. En indeks hjelper database sortere kolonner som en prioritet. Indekser kan øke hastigheten på søkene etter flere minutter. For å lage en indeks på bordet ditt, kan du bruke følgende syntaks:
lage indeks <index_name>
på <tabellnavn> <kolonne> "
Erstatt "<index_name>" med et unikt navn av ditt valg. Tabellen og kolonnenavn er tabellen og kolonnen du er spørring fra MySQL-koden.
2 Redesign din tabell-spørring for å søke på tabellfeltene som er indeksert. For eksempel, hvis du har en indeks på "Kunde", en spørring bør bli forskjøvet fra:
Velg customer_name fra kunden hvor last_name = 'joe'
til en spørring som bruker CustomerId felt som:
Velg customer_name fra kunden hvor CustomerId = 1
3 Bruk tiltrer snarere enn subselect uttalelser. Bli med i en tabell er raskere enn en subselect uttalelse. Videre sammenføyninger bør gjøres på tabellfeltene som har indekser. Et eksempel på subselect er nedenfor:
Velg customer_name fra kunden hvor
first_name = (velg first_name fra orden der order.customerid = customer.customerid)
Du kan endre dette søket til å omfatte et delta ved hjelp av følgende kode:
Velg customer_name fra kunde
bli orden på customer.customerid = order.orderid
hvor first_name = 'Joe'
4 Arkivere gamle poster til en egen tabell. Hvis du har noen veldig gamle data i tabellene, kan du eksportere dem til andre tabeller eller sikkerhetskopierte filer. Koden for å utføre denne prosessen er bestemt av tabellbegrensninger for databasen. Imidlertid er et eksempel spørring for å eksportere data under:
Sett inn archive_table
select * fra kunden hvor create_date <1.1.2009 '