webForumDet fria alternativet

Arkivering av tabell

Databaser & SQL

1 svar · 371 visningar · startad av Obbelix

Medlem sedan okt. 2002257 inlägg
Frågan#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.

Medlem sedan juli 200012 978 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.

349 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
211 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
215 ms — ändringar (db)