为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第15天 实战wiki知识库系统笔记11

标签:
Java

课程名称:Spring Boot+Vue3前后端分离,实战wiki知识库系统
课程章节:11-2 报表统计方案的探讨
主讲老师:甲蛙

课程内容:

数据快照的基本概念

电子书快照脚本收集脚本编写

课程收获

数据快照的基本概念

  • 全球网络存储工业协会SNIA对快照的定义是:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。
  • 数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果。也就是说快照根本的原理就是将本地或远程数据库上的一个查询结果保存在一个表中

电子书快照脚本收集脚本编写

#方案一(ID不连续):
#删除今天的数据
#为所有的电子书生成一条今天的记录
#更新总阅读数、总点费数
#更新今日阅读数、今日点费数
#方案二(ID连续):
#为所有的电子书生成一条今天的记录,如果还没有工
#更新总阅读数、总点赞数
#更新今日阅读数、今日点费数

-- 插入数据快照
INSERT INTO ebook_snapshot ( ebook_id, `date`, view_count, vote_count, view_increase, vote_increase ) SELECT
 t1.id,CURDATE(),0,0,0,0
FROM
	ebook t1 
WHERE
	NOT EXISTS (
	SELECT
		1
	FROM
		ebook_snapshot t2
	WHERE
	t1.id = t2.ebook_id 
	AND t2.`date` = CURDATE());
	
	
-- 	更新今天的数据快照
	UPDATE ebook_snapshot t1, ebook t2
	set t1.view_count = t2.view_count, t1.vote_count = t2.vote_count
	WHERE t1.`data` = CURDATE();
	
	
-- 	获取昨天数据

	SELECT * FROM ebook_snapshot t1 WHERE t1.`date` = DATE_SUB(CURDATE(),INTERVAL 1 DAY)

图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消