记一次线上MySQL慢查询的优化

哎,这次苦逼的经历,真泥坑爹,看了一下午SQL,眼睛都快看瞎了,现在终于解决了,总结一下吧.

中午的时候运维报了一个慢SQL出来.看了一下执行计划,没发现问题,SQL如下

执行计划如下图


这执行计划能跑44秒?我擦,怎么可能呢! 但是事实就是如此

下面就开始了苦逼的profiling

EXPLAIN看不出问题,那就profile看一下

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

发现这个Sending Data很慢(因为这个名字[……]

Read More…

Read more →

使用selenium做自动化测试入门-基于JAVA

之前在使用JAVA做爬虫的时候,有遇到一个问题,就是有些网站,必须要浏览器运行,然后JS执行.内容才能显示出来.遇到这种站,代码直接就趴了,内容抓取不到.网上找了一下发现有一个叫selenium的,可以模拟浏览器行为,做自动化测试.感觉这个应该挺好玩的.难得今天有时间.玩了一把.确实不错

我的项目使用的依赖管理工具是maven,下面给出Selenium的maven地址

然后写一个入门测试的程序

由于selenium的运行是基于浏览器的,所以这里要下载一个webdriver,把下载下来的webDriver放到一个目录里面,然后使用System工具类设置一下系统变量,指向这个webDri[……]

Read More…

Read more →

记一题CTF的decode和encode

最近开始接触了CTF,发现挺有意思的. 在某网站上,看到了这样一个题目.看了半天,根据自己的思路,猜想发现了一些东西,但是搞到最后,怎么都不对.最后借助大神们的思路,找到了解决方法,原来自己一开始,就想错了.解出题目之后,想逆向实现一下.

题目如下:

encode和decode

  Read more →

java中的Class.forName

在做JAVA EE开发的过程中,更多的是使用框架来提高开发效率.越来越发现,之前很基础的一些东西,都忘记的差不多了.从今天开始慢慢的复习一下基础.今天在看JDBC的时候,就有一个有趣的地方,之前学的时候,也没在意.这个Class.forName究竟是什么鬼.

连接数据库几大步.看以下代码

其中第一步,搞的我有点想不通.为啥Class.forName传入了一段字符串之后,就知道我连接的数据库是mysql? 有点不科学啊.Class.forName到底做了啥.下面就开始到源码中,一探究竟.

发现它调用了forName0方法,继续跟踪再看看

native方法,源码也只能到此结束了.看[……]

Read More…

Read more →

git从版本仓库中删除掉误提交的文件

今天误提交了一些文件到gitlab当中,看起来非常的不爽.想从版本库中移除掉.网上找了一下解决办法,现在总结一下.

–cached表示是从暂存区中移除文件,本地还保留.如果想预览一下有哪些文件被删除,可以在rm后面加上参数-n Read more →