继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

降蓝
关注TA
已关注
手记 15
粉丝 0
获赞 0

课程名称: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)

图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP