使用 mysql chmod 清除 mysql 数据库

使用 mysql chmod 清除 mysql 数据库

我有一个短网址网站,现在越来越受欢迎。我保存了一年内每个用户在网站上创建的短网址的统计数据,以便他们可以查看其网址的访问量。

数据库变得相当大,我想知道如何通过每晚运行此命令来清除条目?我希望它像 chmod 一样运行,但我不知道如何做到这一点,以及是否可能?是的,在哪里,我可以在 WHM / Cpanel 中执行此操作吗?或者有人可以描述如何通过 SSH 执行此操作吗?我熟悉 SSH,所以没问题。

DELETE FROM `stats` WHERE dt < DATE_SUB(NOW(), INTERVAL 3 YEAR);

答案1

警告:使用前请检查详细信息:

计划 A(在 Linux 等上):使用cron

0 0 * * * mysql -uuser -ppwd -e 'DELETE FROM mydb.stats WHERE dt < NOW() - INTERVAL 3 YEAR'

请参阅mysql_config_editor隐藏密码的方法

计划 B(Windows):使用at并做一些类似于的事情cron

(见手册)

计划 C(MySQL 内部):设置一个EVENT

CREATE DEFINER=`root`@`localhost`
EVENT `ev5` ON SCHEDULE EVERY 1 DAY STARTS '2022-08-12'
    ON COMPLETION NOT PRESERVE DISABLE
    DO 
        DELETE FROM stats WHERE dt < NOW() - INTERVAL 3 YEAR

另外:这将有利于stats

INDEX(dt)

如果每次删除都有数千行,PARTITIONing则可以提高速度: 分割 (我会PARTITION BY RANGE使用每周分区和DROPs。)

(我不知道你在这种情况下所说的‘chmod’是什么意思。)

我认为ssh如果您需要在单独的机器上使用“cron”,可以将其添加到 cron 方法中。

相关内容