Write the Code. Change the World.

9月 21

事务大小小于binlog_cache_size 使用内存
在binlog_cache_size 和 max_binlog_cache_size 之间会使用磁盘,
超过 max_binlog_cache_size 事务就报错了 会报 Multi-statement transaction required more than‘max_binlog_cache_size’ bytes of storage

mysql 5.7限制 max_binlog_cache_size 为4G 因此过大的事务是不能打开binlog的。

stackoverflow大神解答
1. Transaction size is below @@binlog_cache_size
(transaction succeeds, uses the cache, does not use the disk)…

阅读全文 >>

9月 21

注意慎用replace into,两个的主要区别如下

replace into INSERT INTO ON DUPLICATE KEY UPDATE
遇到更新时是先删掉原来的在插入新的 遇到更新时直接update
由于先删除旧的,如果原来有些列有旧数据或者没有提供更新的列,会丢数据 典型的update数据,只影响update的列,别的没有影响
由于先删旧的性能慢 性能快

参考:
MySQL “replace into” 的坑
Mysql replace 与 insert on duplicate效率分析
INSERT INTO .. ON DUPLICATE KEY更新多行记录

阅读全文 >>

9月 21

停止防火墙
rcSuSEfirewall2 stop

禁用防火墙自动运行
chkconfig SuSEfirewall2_setup off
chkconfig SuSEfirewall2_init off

要先停setup的,否则停init的会报错

参考
http://www.wo81.com/tec/os/suse/2014-04-21/129.html

转载
SLES 11 SP3 系统安装后,防火墙一般是启动的,它有两个服务:SuSEfirewall2_setup,SuSEfirewall2_init,但是为了方便使用,我们一般会将防火墙关闭并禁用。
关闭防火墙的方法
方法一
rcSuSEfirewall2 stop
方法二
service SuSEfirewall2_setup stop
service SuSEfirewall2_init stop
方法三
yast 或 yast2 → 安全和用户 → 防火墙 → 立即停止防火墙

禁用防火墙自动启动的方法…

阅读全文 >>

9月 21

find . -type d -print0 | tar cf dirstructure.tar –null –files-from – –no-recursion

参考stackoverflow的回答
You can use find to get the directories and then tar them:
find .. -type d -print0 | xargs -0 tar cf dirstructure.tar –no-recursion
If you …

阅读全文 >>

9月 04

官方页面和下载

官方的虚拟机发布和配置页面
虚拟机下载地址
虚拟机文件可以直接用vmware workstation打开,报错就选忽略

基本配置

虚拟机网卡默认是dhcp的,一般需要改成静态ip,把dhcp改成 static 其他参考如下

阅读全文 >>

9月 03

阅读全文 >>

8月 24

参考https://en.opensuse.org/SDB:Configuring_graphics_cards…

阅读全文 >>

8月 17

Java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。
首先被debug程序的虚拟机在启动时要开启debug模式,启动debug监听程序。jdwp是Java Debug Wire Protocol的缩写。

在启动程序时,将以下参数选项添加到自定义的命令行中,程序就会以支持RemoteDeubg的方式启动。

wrapper.java.additional.1=-Xdebug
wrapper.java.additional.2=-Xrunjdwp:transport=dt_socket,server=y,address=7899,suspend=n

DEBUG选项参数的意思:

-XDebug 启用调试;
-Xrunjdwp 加载JDWP的JPDA参考执行实例;
transport 用于在调试程序和VM使用的进程之间通讯;
dt_socket 套接字传输;
server=y/n VM是否需要作为调试服务器执行;
address=7899 调试服务器监听的端口号;
suspend=y/n 是否在调试客户端建立连接之后启动 VM 。

程序准备好之后,再配置一下Eclipse,让它去访问远程的VM了。过程相当简单!

先在程序中打好断点,然后

Run–Debug Configurations…–Remote java Application–右键New–填写Host和Port(例如,Host:10.75.0.103,Port:7899)–Debug

Eclipse debug快捷键:

F5 Step …

阅读全文 >>

8月 05

两个索引 一个唯一键 一个非唯一键时
相同的update语句,可能会由于索引合并,先扫描非唯一键,锁非唯一键时,导致死锁

MySQL官方也已经确认了此bug:77209,解决方法有两种:

添加列1+列2的 组合索引,这样就可以避免掉index merge;
将优化器的index merge优化关闭。

参考
http://mysql.taobao.org/monthly/2016/03/10/
https://bugs.mysql.com/bug.php?id=77209
http://seanlook.com/2017/03/11/mysql-index_merge-deadlock/…

阅读全文 >>

8月 02

hibernate Validator
fluent-validator

http://blog.csdn.net/xlgen157387/article/details/46848507

版权声明:本文为博主原创文章,未经博主允许不得转载。
目录(?)[+]
一、JSR-303简介

JSR-303 是 Java EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是hibernate Validator。

此实现与 Hibernate ORM 没有任何关系。 JSR 303 用于对 java Bean 中的字段的值进行验证。
spring MVC 3.x 之中也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地验证。
注:可以使用注解的方式进行验证

二、准备校验时使用的JAR

validation-api-1.0.0.GA.jar:JDK的接口;
hibernate-validator-4.2.0.Final.jar是对上述接口的实现;
log4j、slf4j、slf4j-log4j

三、JSR 303 基本的校验规则

空检查…

阅读全文 >>