超凡魔力

君子善思,善假于物,而不物于物。

0%

csv文件格式

由于要用到Postgresql中的copy命令,而该命令是需要有csv文件的。虽然我知道,php中的函数支持直接写csv文件,但是我还是比较担心csv文件中特殊的文件内容如何处理。所以,故写本文记录一下对csv文件中的格式探讨。

阅读全文 »

PHP批量插入

关于数据批量插入,实际上是一个常见的需求。有场景:从某处同步过来一批数据,最简单的方式,收一条,写一条。如果丢失数据,问题不大,就丢一条,但是,这样的效率太低了。所以,最好能先缓存一批数据,然后批量插入。(暂不考虑,更新数据这个需求。)

这便是今天想要探讨的问题。如何让插入数据更快。(面试也经常问)。有了一批数据,1、每条记录插入一次,但是总的,用一个事务控制。速度有提升。2、将500条记录,拼接成一条sql,然后一次插入。效率提供比较明显。3、将一大批数据,直接写入到csv文件中,然后利用数据库工具导入到数据库中。(但是这个需要更大的权限)

关于多条记录拼接成1条sql,其实吧,也是有坑的,对与php这样的动态语言。我曾经踩过坑。对接的是java从mysql抓取到记录,然后用fastjson转换成kafka消息。坑在于,1、null的字段,它直接过滤掉了,导致我收到的字段有缺少。2、另外,还有一个问题,字段的顺序问题,比如插入的顺序name、age,你按age、name那么来,顺序反了肯定也不行。

所以,别想太复杂,直接循环$rows,然后对每一条row,再循环fields,然后将没有的字段赋值为空。这是最简单的方式、也是最简单的方式。

这样,对批量过来的数据,我们已经经过一次了标准化,入库非常简单了。

阅读全文 »

json格式的数据存入到数据库中,但是,由于字符串中的特殊情况,进行了转义,结果导致无法转回来。需要对其中的转义过的字符,先替换,再进行json的编解码,就可以了。

阅读全文 »

if和比较

多数语言,一般比较运算常用在判断,控制流程中。所以呢,本文记录一下shell中的逻辑运算跟if控制流程。

阅读全文 »

you-get与youtube-dl

这两个工具都是用python写的,对于Linux环境,默认都安装了Python,默认也都有pip,但是注意,有可能是pip3。安装这两个工具,也都非常容易。

另外说一句,由此可见,python写的工具还是非常方便,非常受欢迎的。比如还有dockercomposer工具等。

安装方式

pip install you-get
pip install youtube-dl
# 升级
pip install --upgrade you-get 

至于源码,可以到github上查看。

阅读全文 »

java学习感悟

要明白一个道理,应该是会得越多,越好学。我现在学习java,总觉得java好多概念,springboot里面有很多不懂的东西,而且总是感叹,之前学php是多么容易,多么简单。但是,细想一下,之前学得时候,也并没有那么容易,也没有那么简单。只是,做为成功者回来看,总觉得以前多么容易,对眼前的困难,总觉得很困难似的。

阅读全文 »