Delete all entries over 15 minutes old

As always, you should view the query plan, and post it here. You do that by issuing EXPLAIN DELETE FROM tracker WHERE post_time < DATE_SUB(NOW(), INTERVAL 15 MINUTE)

Now, the problem is likely that the DELETE query can't use an index, and have to loop through all of your rows.

Even if you already have an index on post_time , it will likely not be used, as by default indexes on MEMORY tables are hash indexes. Hash indexes can only be used for equality checks, and not ranges such as post_time < DATE_SUB(NOW(), INTERVAL 15 MINUTE)

Create a BTREE index on your post_time column,

CREATE INDEX post_time_idx ON tracker (post_time) USING BTREE;