SQL 语句 UPDATE 套 SELECT 一层套一层

现在遇到多条录入的记录,需要把多条汇集成一笔;实际情况就是会存在多笔似重复的记录,记录中的某值需要积累后再去掉重复只保留最后一条,即最后一条的中统计的是求和。从思路上讲所谓的最后一条,就是进行一次排序 order by id desc LIMIT 1 (  id  倒排序 只取一条 )  得到最后一条的ID 。 UPDATE 这一条的相关的值,通过 SUM( ) 可以对要统计的值进行求和 ...

MySQL 的存储过程中根据 SELECT 查询结果集来循环处理任务

项目中经常会遇到一种情况,我们需要从一个SELECT 的查询中返回一个结果集即一个数组,在循环读取数组中的字段值,这个字段值还将用于放入到另一个SQL 语句中一条一条去做处理。我平常在处理这种情况的时候,一般是直接在开发语言(如 JAVA)中写循环语句嵌套来进行。 前几天跟何同学讨论存储过程,提及在数据库中处理查询比外部调用效率更高。今天无事尝试一次,MySQL 存储过程支持多种逻辑语句( IF / WHILE 等),如想轮循 ...

MySQL 的计划任务(事件 EVERY)测试

目前正在跟进的一个项目中服务端每天会汇集数以十万记的终端发送来的信息,由于心跳机制的原因同一天同一终端的信息会有冗余,为了提高存储的利用率以及后期汇总统计时减少查询时间上的消耗,我们有必要对每一天的数据进行汇总去重。即将每终端每天的心跳记录汇总成一条。 原方案是JAVA 写了一个服务程序每天定时对数据库中记录进行汇总去重。今天在重新测试一个新的方案:mysql 支持触发器、存储过程 和 事件,完全可以利用mysql  ...

JDBC 一次批量插入几十万条模拟数据

最近一个项目需要对大量的数据进行汇总,期间还涉及到定时对冗余记录的去重。因为现阶段不能直接操作生厂环境不可能有这如此大量的真实数据供测试期间使用。因为就需要自己在数据库中插入50万+ 条记录。在程序中采用 while 循环 INSERT 插入1000 条 要执行近 50 秒,如插入50万条 不敢想向耗时。 这里就有必要采用更高效的办法 。public static void main(S ...

无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)

今天在执行 sudo apt install git 时,提示“无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)”,网上有人说是因为apt 进程被挂起了,因为非法关机等原因有另一个进程在执行 apt 还未结束。需要 kill 这个进程;但我当时试了没有成功,只好暴力删除加锁文件了:sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/ ...

养成写博客的好习惯

今天突击发了一篇记录折腾了一晚上的小小结果,小兴奋一下。然从日志上发觉自己竟然连接一个星期没有写博客了,自己这一个星期都做了些什么都忘了。写博客要成为一个种习惯,把自己最近工作中新增的知识点、解决的问题、和新收获以博客方式记录下来,不仅可以与人分享对自己也是一份最好的学习笔记,很久以后可以像翻看日记一样翻看自己的博客,从而记得自己那一年那一月在做些什么在学什么也是一份美好的回忆。 ...

Windows CLion 写Qt 程序运行时会出现一个命令行窗口的问题

Windows 用Qt 写的程序默认会先打开一个控制台(命令行)窗口然后GUI 图形界面的窗口才会打开。这个问题按官方的说法不是问题属于正常的现象,在VS 中可以通过修编译链接配置参数来禁止。qtcreator 也能通过修改配置文件来处理。但是我的情况是在Windows 下MinWG 环境用g++ 编译Qt ( cmake 而不是 qmake ) 时,各种大招都不灵了。有人提前 ...

Windows 下CLion + Qt 开发环境的搭建

以前总只以为Qt 仅是 C 开发图形界面程序时的界面库,使用一段时间后发才发觉它的确是非常牛叉,不仅自身集成并扩展了大量的类库而是跨平台。但是Qt 自带的Qt Creator 集成开发环境总让觉得有点闹着玩似的。CLion 是JB 全家桶中C  集成开发工具,应该是除了VS 之外大家的最爱。今天花了时间尝试在CLion 集成Qt  ,记录如下:在Windows 下使用 CLio ...