Hi Rob,

mysqlcheck -a analyses and reports, -o optimizes (which in innodb means writing 
all data out to a temporary table, then truncating and replacing the original. 
This can be slow and write-blocking whilst it’s underway).

Neither is destructive – they don’t delete or purge data.

There is no mariadb command to act upon a random database and purge old data, 
probably because mariadb itself does not record the age of rows (afaik)

The normal process for expiring aged data is to have a column in your table 
with a date (which can be automatically added at the time of insertion if 
specified in that table’s schema)

Then you would run something like;

“DELETE FROM TableName WHERE DateRowName < DATE_SUB(NOW(),INTERVAL 1 YEAR);”

Which would delete all rows older than a year based on the date in DateRowName.

Note: That may not release the disk space until an mysqlcheck -o is run, or the 
equivalent sql command “OPTIMIZE TABLE TableName;”. (See wider topics on innodb 
fragmentation)

From: robert k Wild via discuss <[email protected]>
Sent: Wednesday, June 28, 2023 7:52 PM
To: [email protected]
Subject: [MariaDB discuss] can you purge data older than 4 months old

hi all,

i was just wondering i know about the "mysqlcheck -a and -o" ie to optimize and 
to analyse ie to cut it down in size but NOT to purge any data

but is there like a purge option to delete all data older than 4 months old in 
the database

thanks,
rob

--
Regards,

Robert K Wild.
_______________________________________________
discuss mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to