Policy för databasen rörande index samt lite tips om hastighet - hos Levonline IT hotell, web hotel

Support

Välkommen till vår supportsektion. Bläddra ner för svaret på din fråga. Har du en teknisk fråga hittar du antagligen svaret på den nedan, eller så kan du prova att söka. Om du saknar något här eller har fått hjälp med något via vår support som du tycker borde finnas här, hör gärna av dig till oss så ordnar vi det!

Utöver supportsidorna har vi tagit fram en rad verktyg för domän och hemsida. Bland verktygen finner du guider för whois, SPF, HTTP-huvuden och mycket mer!

Om du behöver hjälp direkt av vår duktiga support är du välkommen att höra av dig per e-post (support@levonline.com) eller via telefon (08-320 360); vår kundtjänst finns tillgänglig vardagar mellan kl. 08:00 och 18:00 för att hjälpa dig med alla tänkbara problem eller önskemål.

Nedan finner du även ett kontaktformulär för supportfrågor.
Fritext sök
Populärast Webhotell Epost Domän Egen server Bredband
Hemsida PHP ASP Java Databas Unix Allmänt CGI Statistik

Policy för databasen rörande index samt lite tips om hastighet

Mycket av resurserna för databasservrarna på det delade webhotellet tenderar tyvärr att ätas upp av fulltextsökningar i databasen eller förfrågningar som inte använder index. Om det går att använda index för din databas så skall du göra det.

Om det inte går att använda index så bör du troligen inte använda databasen utan istället lägga dina data i någon lämplig textfil eller fildatabas eller motsvarande i din hemkatalog så att varje webserver för sig direkt kan söka i datat. Detta går dessutom snabbare då varje webserver kan spara datat en tid i internminnet efter att den har läst det från filservern, till skillnad från resultat från databasen som inte sparas. Och det är mycket enklare för Levonline att bygga ut prestandan med fler webfarmdatorer om det behövs CPU-kraft där än med fler databas-servrar.

Problemet med att inte använda index är att oavsett hur mycket hårdvara Levonline lägger på databas-servrarna så kan det alltid ätas upp av ineffektiva förfrågningar. Det går bra när det är låg last och små tabeller men ju mer data och högre last det blir desto långsammare går det. Med index så går det bra att ha stora tabeller.

Ligger du på databasen mysql.levonline.com och har stora databaser kan det hjälpa att migrera databasen till vår andra databasserver innodb.levonline.com som stödjer tabellformatet InnoDB. Kontakta oss så skapar vi en databas åt dig på den servern. Några av fördelarna med InnoDB som tabellformat istället för MyISAM är att InnoDB stödjer användning av index även för ORDER BY, row-level-locking samt transaktioner.

Det finns ett bra avsnitt i manualen för MySQL under Performance Tuning Tips som beskriver vad man ska tänka på för att få bra prestanda. Här följer några grundläggande saker som kan vara bra att kolla upp först:

  • Se till att använda index i tabellerna. Utan index kommer din databas att gå långsammare och långsammare ju större tabellerna blir. Så här gör du för att lägga till index: ALTER TABLE mintabell ADD INDEX (kolumnen);
  • Om du vet att indexet är unikt så använd unikt index istället, det är alltid bättre. Unikt index innebär att kolumnen unikt identifierar raden, tex ett personnummer eller användaridentitet. Så här lägger man till det: ALTER TABLE mintabell ADD UNIQUE INDEX (kolumnen);
  • Om du har möjlighet så använd primary key som är snäppet effektivare än ett vanligt index eftersom det sparas nära tabelldatat. En tabell kan bara ha en primary key. Primary key är ett unikt index. Så här kan man lägga till en primary key: ALTER TABLE mintabell ADD PRIMARY KEY (kolumnen);
  • Kontrollera hur index används med hjälp av EXPLAIN. Så här exempelvis. EXPLAIN SELECT * FROM mintabell WHERE user='malin';
  • Det går inte att använda index om du använder fält av typen BLOB när InnoDB-tabeller används (dvs servern innodb.levonline.com). Så om du använder blobbar så skall du inte söka efter dem som nyckel. Låt därför bli att göra så select * from tabellen where blobben = "a7432nbd6a643j5"; eller motsvarande. Du kan använda blobbar för att spara data, men sök inte i dem. Som alternativ kan man använda en stor VARCHAR istället vilken det går att ha index för. Observera att det inte räcker att bara konvertera till VARCHAR från BLOB, ett index måste också läggas till.
  • Se till att hämta all data websidan behöver på en gång under en uppkoppling mot databasen. (Om du exempelvis vill fylla en tabell som är 20 kolumner bred och 50 rader hög så är det bättre med en enda uppkoppling än att göra uppåt 1000 stycken om det är en för varje fält) Se även till att hämta all data direkt som en stor tabell istället för att göra en förfrågan per fält så tjänar du en massa tid.
  • Undvik låsning av tabellerna. Läs mer om table locking i manualen för MySQL för hur detta ska uppnås.
  • Försök göra tabellerna mindre. Då går det snabbare vilket gör att exempelvis låsning av tabeller inte blir så farligt.
  • Se till att optimera dina querys så att de går så snabbt som möjligt.
  • Lägg inte onödiga data i databasen. Om du exempelvis skall ha ett arkiv med bilder så är det effektivare att lagra bara filnamnet i databasen och sedan ha själva bilden som en fil i hemkatalogen. Att lagra även själva bildens innehåll i databasen tar bara resurser i onödan.

Fick du svar på din fråga?

Är du nöjd med svaret på frågan? Ge oss förslag på förbättringar här!




Denna information används för att förbättra artikeln i framtiden.
För snabb hjälp, använd istället kontaktformuläret längre ned.
KONTAKTA OSS!