webForumDet fria alternativet

Arkivera gamla inlägg

9 svar · 565 visningar · startad av Thompa__85

Thompa__85Medlem sedan aug. 2002600 inlägg
#1

Hello Wf!

Jag har ett lite mindre problem här som jag ska försöka fixa! Det är nämligen så att min gästbok innehåller massvis med inlägg, vilket segar ner laddningen av besökarna gästböcker!

Jag kom då på idén att man kan fixa ett "arkiv", dvs en till tabell i databasen som man lägger inlägg som är äldre än 6 månader. Och sedan skapar en länk i gästböckerna av typen: "Se äldre inlägg".

Men frågan är då, hur på smidigast sätt flyttar jag över alla inlägg som är äldre än 6 månader?

Mvh Andreas

ViktorMedlem sedan aug. 20021 752 inlägg
#2

Är det inte lättare att ha två olika sidor, en sida med en SQL sats som hämtar alla inlägg som är skapade under de senaste 6 månaderna och en sida som hämtar inlägg som är äldre än 6 månader.

/Viktor

Thompa__85Medlem sedan aug. 2002600 inlägg
#3

Viktor skrev:

Är det inte lättare att ha två olika sidor, en sida med en SQL sats som hämtar alla inlägg som är skapade under de senaste 6 månaderna och en sida som hämtar inlägg som är äldre än 6 månader.

/Viktor

Funkar inte SQL så att den ändå måste gå igenom alla inlägg som är äldre än 6 måander om alla inlägg ligger i samma tabell?

Jag har testat att bara skriva ut 100 inlägg / användare.. men det går ändå lika segt att hämta.. så tror inte det löser något :/

@ndersMedlem sedan juni 200032 969 inlägg
#4

Har du några vettiga index på tabellen då?

Thompa__85Medlem sedan aug. 2002600 inlägg
#5

@nders skrev:

Har du några vettiga index på tabellen då?

Jodå, Det vill jag påstå att jag har. Har mixtrat lite med det och fått ner laddningstiden en bit.. men fortfarande extrema laddningstider :/

Thompa__85Medlem sedan aug. 2002600 inlägg
#6

Men för att återgå till mitt problem, hur löser jag lättast en flytt? manuellt i mysql´databasen då och då? Eller finns det andra sätt?

@ndersMedlem sedan juni 200032 969 inlägg
#7

Jag hade gjort typ så här:

insert into historiktabellen select * from gästbokstabellen where villkor
....
delete from gästbokstabellen where villkor
aasahMedlem sedan mars 20034 471 inlägg
#8

@nders skrev:

Jag hade gjort typ så här:

insert into historiktabellen select * from gästbokstabellen where villkor
....
delete from gästbokstabellen where villkor

Jag hade lagt in en koll mellan dessa två satser på att all info verkligen hamnade i historiktabellen innan jag tog bort i den gamla.

@ndersMedlem sedan juni 200032 969 inlägg
#9

Det verkar lämpligt, som du skriver, aasah. :)
Det verkar också lämpligt att ha backup på det man tar bort. ;-)

natasMedlem sedan juli 200568 inlägg
#10

Istället för att skicka gamla inlägg till en annan tabell kan man partionera tabellen:

http://www.databasejournal.com/features/mssql/article.php/3456991

Det känns inte som en bra lösning att skicka gästböckerna hit och dit i tabellerna beroende på hur gamla de är. Och det borde inte ta så lång tid att hämta upp gästböckerna om du har satt ett index på FOREIGN KEY kolumnen. Då går den direkt mot denna och söker inte igenom varenda rad för att hitta det du letar efter.

.

132 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)