Posted in sqlite
6
4:20 am, January 18, 2022

function to delete older sqlite records when the limit is reached

I had an issue where a sqlite database was hitting over 100,000 records and this was causing quite a lot of lag and crashing on my server, the number of records was not really meant to be this high, so i can just keep a few thousand so it does not cause lag.

This is the function i added and run before or after the latest item is inserted to remove older items in the database. 

PHP

// this will delete records over the specified number if run.
// it will keep the latest $records_to_keep number and delete older ones.
public function delete_over($records_to_keep = 1000) {
  $db_table_name = $this->db_table_name;
  $sql = "DELETE FROM $db_table_name WHERE ROWID IN (SELECT ROWID FROM $db_table_name ORDER BY ROWID DESC LIMIT -1 OFFSET $records_to_keep)";
  $result = $this->db->query($sql);
}

// example run on keywords class
$keywords->delete_over($records_to_keep = 1000);

External Link for function to delete older sqlite records when the limit is reached

View Statistics
This Week
0
This Month
0
This Year
0

No Items Found.

Add Comment
Type in a Nick Name here
 
Search Code
Search Code by entering your search text above.
Welcome

This is my test area for webdev. I keep a collection of code snippits here, mostly for my reference. Also if i find a good site, i usually add it here.

Join me on Substack if you want me to send you a collection of the things i have done or found or read for the week. Or follow me on twitter if you prefer, i dont post much but i probably should!

❤👩‍💻🕹

Random Quote

'Dawnie' used to say, "It's really quite simple: Be kind, and the rest takes care of itself. Never do anything that's not kind".


Dawn Atherton