本周11.29总结(存储过程,事件)

存储过程

  1. 查询数据之后插入另外一张表格之中
    insert into table(a,b)
    select a,b from table2 where c = _c;
    注: _c就是存储过程传递的参数值
    2)find_in_set(id,ids) 的使用
    第一次用这个函数, 效果跟in差不多 ,不过细细的研究之后发现, find_in_set更多的是当传变量的时候, 如果待查询的条件的常量 就用in 这样的性能会更高.
    查询字段是主键的时候 会用到索引,只会查询部分数据,用in性能会更高
    find_in_set 查询的是全部的数据,如果数据量很大的话 ,性能开销会很大;
    用explain 解释功能可以查看查询的数据范围,type为range(部分) all(全部) ;
DROP PROCEDURE IF EXISTS `sp_history_s6000`;
delimiter ;;
CREATE PROCEDURE `sp_history_s6000`(IN ids LONGTEXT)
BEGIN
 INSERT INTO t_monitor_s6000_history(`sendTime`, `type`, `value`, `createTime`)
 SELECT NOW(), type, `value`, createTime
 FROM t_monitor_s6000 
 WHERE 1 = 1 AND FIND_IN_SET(id, ids);
END
;;
delimiter ;
  1. 数据库事件
    首先需要打开调度器
    set global event_scheduler = 1;
    查看是否开启
    show variables like “event_scheduler”;
    CREATE EVENT e_s6000_1d
    ON SCHEDULE EVERY 1 DAY  ON COMPLETION PRESERVE DO 
    CALL sp_insert_s6000_dev();
		
-- 如果存在则执行 -->  DROP EVENT e_s6000_5m;
	delimiter |
	CREATE EVENT e_s6000_5m
			ON SCHEDULE
				EVERY 5 MINUTE
			ON COMPLETION PRESERVE
			DO
				BEGIN
					CALL sp_insert_s6000_serverNum();
					CALL sp_insert_s6000_terminalNum();
				END |
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值