MySQL数据库定时任务脚本inner join和left join的区别效率
今天遇到的业务为了减少服务器压⼒、提⾼性能、少写Java代码,所以需要写数据库定时脚本来完成。
⼀、查看定时器、打开定时器
switch语句范例-- 开启event
SET GLOBAL event_scheduler='ON';
-- 查看定时器
SHOW VARIABLES LIKE 'event_scheduler';
⼆、写存储过程供定时任务调⽤
DELIMITER
DROP PROCEDURE IF EXISTS 存储过程名_proce; -- 避免出错,如果有这个名字就删除
CREATE PROCEDURE 存储过程名_proce() -- 更新设备⼼跳状态存储过程
typedef定义变量profile picture是什么意思
BEGIN
DECLARE t_error INTEGER DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;
span标签怎么使用START TRANSACTION; -- 开启事务
-- 定时脚本需要执⾏的SQL
-- 这⾥写需要执⾏的SQL语句,如果不涉及到事务,去掉事务相关的代码
IF t_error=1 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
SELECT t_errot; -- 返回标识位的结果集
END;
DELIMITER;
三、写定时任务
DROP EVENT IF EXISTS 事件名称_event;
CREATE EVENT 事件名称_event -- 创建⼀个事件每60秒执⾏⼀次
ON SCHEDULE EVERY 60 SECOND
ON COMPLETION PRESERVE DISABLE
DO CALL 存储过程名称_proce();
四、开启定时任务
-- 开启事件
ALTER EVENT 事件名称_event ON COMPLETION PRESERVE ENABLE;
五、到这⾥就完成了,⼀个完整的数据库脚本,直接运⾏即可。(亲测可⽤,已经跑在了我们数据库服务器上)。
这⾥附上关闭事务和查看⾃⼰写的所有事务所需代码
-- 关闭事件
-- ALTER EVENT 事件名称_event ON COMPLETION PRESERVE DISABLE;
-- 查看⾃⼰创建的event
-- SELECT * FROM mysql.`event`;mysql查看所有存储过程
六、我们学的更多的是解决问题的能⼒。本⽂参考了两篇博客,这⾥分享给⼤家。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论