webForumDet fria alternativet

Arkivering av tabell

1 svar · 371 visningar · startad av Obbelix

ObbelixMedlem sedan okt. 2002257 inlägg
#1

Har en tabell full med logg-rader som jag funderar på att arkivera på något smart och lämpligt sätt.
Tabellen innehåller idag data ca tre år tillbaka i tiden och för den dagliga driften behövs inte mer än max ett år bakåt.
Tanken är att varje natt köra ett skript som flyttar data som är äldre än ett år till en ny tabell, fast annan databas.
På det sättet hålls storleken på tabellen och databasen nere vilket ger snabbare svar på frågor plus att den dag man behöver komma åt datan så finns den "online".

Kan man göra detta med SP eller är det bättre med ett skript som kör frågan, likt:

INSERT INTO db2.old_log (col1, col2, col3...) 
VALUES 
(SELECT col1, col2, col3...FROM db1.log 
WHERE date(dt_mark) < date_sub(dt_mark, INTERVAL 1 YEARS))

Någon som har idéer eller tips kring detta?

Edit: Glömde skriva att det gäller MySQL.

LaspMedlem sedan juli 200012 980 inlägg
#2

Har gjort något liknande. Det var så mycket data att jag skapade årstabeller och en liten söktabell för var man skulle finna det.
Men har du bara raka datat så skall du kunna flytta över och rensa.
Rätt tänkt.
En levande kärna av data. Statiska kan ligga i en annan databas.

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