场景:SpringBoot Security 单点登出清除所有业务系统的 token
随着时间推移,token 存储表 oauth_access_token 变得异常的大,所以 removeAccessToken 得效率非常差
解决方法:定时清空表 oauth_access_token
- 操作需要修改的数据库
use mydatabase;
- 创建事件 delete_access
- 每天执行一遍 SCHEDULE EVERY 1 DAY
- 保留当天和前一天 DATE_SUB
CREATE EVENT delete_access
ON SCHEDULE EVERY 1 DAY
DO
DELETE
FROM
oauth_access_token
WHERE
create_time < DATE_SUB( CURDATE(), INTERVAL 1 DAY );
- 查看事件
show events;
- 关闭事件
alter event event_name disable;
- 开启事件
alter event event_name enable;
- 删除事件
drop event if exists event_name;