WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Stor MySQL databas - hur hantera (https://www.wn.se/forum/showthread.php?t=6813)

Dood 2005-03-18 15:33

Hej,
En databas för en lösning jag byggt har växt enormt den senaste tiden och är nu på närmare 500MB.
Det är som oftast statistikdelen som medför att storleken skenar iväg.
Sökningar mot databasen blir också då allt segare.
Finns det någon genial lösning på hur man kan hantera detta?
Databasen ligger på en dedikerad server som i övrigt har bra med utrymme och prestanda.

En variant som jag ser det är att bygga ett script som schemalagt aggregerar data från databasen efter en viss tid, och lägger detta i en egen databas och städar därefter upp i "produktionsdatabasen". Detaljstatistik är ändå oftast inte superintressant efter en tid, men man önskar ofta kunna jämföra med äldre statistik på ett mer övergripande sätt.

Tänkte om det kanske fanns någon "färdig" smart lösning som andra använder sig av.
Någon?

mypay 2005-03-18 16:12

vi gör likadant.. faktiskt.. :)

fast i 2 steg.. efter ett tag flyttar vi gammal data till en sekundär sql-server.. sen efter ytterligare ett tag så flyttas den datan till vanliga filer och bränns ut och lagras i ett skåp

Joel 2005-03-18 18:06

500 Mb borde väl ändå inte bli så mycket data att söka igenom?
Har du koll på hur du optimerar index och nycklar?

När datan ligger över 1 gb så skulle jag börja fundera i dina tankar, sen beror det mycket på vad det är för typ av data, om det är sånt som kan stoppas undan för att plockas fram senare(eller helt tas bort) eller om det är sånt som används hela tiden?

Glöm inte bort att schemalägga (förslagsvis genom crontab) en optimize på alla tabeller typ kl 03 varje natt.

/J

Starweb 2005-03-18 18:49

Citat:

Originally posted by programmer@Mar 18 2005, 18:06
Glöm inte bort att schemalägga (förslagsvis genom crontab) en optimize på alla tabeller typ kl 03 varje natt.
Varför det, vad exakt leder en optimize till?

Jo, att "optimera" tabellen, det förstår jag med, men HUR. Är det ungefär som en "defrag" på en hårddisk eller?

ZN 2005-03-20 10:55

Citat:

Originally posted by Starweb@Mar 18 2005, 19:49
Jo, att "optimera" tabellen, det förstår jag med, men HUR. Är det ungefär som en "defrag" på en hårddisk eller?
Typ, http://dev.mysql.com/doc/mysql/en/optimize-table.html

EXPLAIN:a dina querys och kolla så att rätt fält är indexerade så att det inte görs några fullscans, om det körs många fler inserts än selects så ska du dock va försiktig med index och förslagsvis endast skapa indexen före en tung select och sen droppa det, beror på hur det funkar. Kanske kan du förbättra cachningen på dina select querys också genom att optimera dom.

http://www.databasejournal.com/features/my...cle.php/1382791

Dood 2005-03-20 22:03

Tack för alla bra synpunkter och länkar!
Jag har lite hemläxa att ta tag i...


Alla tider är GMT +2. Klockan är nu 15:46.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson