- 浏览: 55510 次
- 性别:
- 来自: 南京
最新评论
文章列表
在做连表查询的时候,可以在联合的字段上面,分别加上索引字段,这样有加快搜索的速度
左右连表查询时条件放在on后面和where后面的执行时机是不一样的
例如
test1表
test2表
执行
SELECT * FROM test1 t1 LEFT JOIN test2 t2
ON t1.no=t2.no AND t2.name='aaa';
结果为
SELECT * FROM test1 t1 LEFT JOIN test2 t2
ON t1.no=t2.no WHERE t2.name='aaa';
从这两个查询的结果集可以看出来,on的条件 ...
jvm配置垃圾收集参数
- 博客分类:
- jdk
在linux环境下配置tomcat的垃圾回收的一些配置,在catalina.sh文件的开头,直接加入
JAVA_OPTS="
$JAVA_OPTS
-server
-Xms64m -Xmx512m
-XX:PermSize=64M -XX:MaxPermSize=128m
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/dump.hprof
-verbose:gc -Xloggc:/hom ...
fork/join
核心类
ForkJoinTask 任务的抽象类
ForkJoinWorkerThread 执行任务的线程
ForkJoinPool 执行任务队列的池
RecursiveTask继承了ForkJoinTask是一个带有返回的任务类
RecursiveAction不带返回的任务类
这里实现一个计算1-100的求和,不 ...
java线程池,首先看一下构造方法
解释一下参数的意义
corePoolSize 核心线程数
maximumPoolSize 最大线程数,
keepAliveTime 线程中超过核心线程数的空闲线程最大存活时间
unit 存活时间的单位
workQueue 线程队列类型
Executors.defaultThreadFactory() 构造线程的工厂类
defaultHandler 超过线程队列大小的时候,默认拒绝接受线程的handler类
这几个参数的意思,等一会分析源码的时候一并解释
提交到线程池执行的是execute方法,里面传入一个线程类
执行超类的s ...
多线程this逃逸现象,一般发生在构造函数里面注册监听器或者构造函数里面启动线程,因为这个时候,构造函数还未执行完,但是却直接使用了监听器的方法或者启动了线程,就会出现一些莫名其妙的问题,
构造函数注册时候产生
构造函数开启线程产生
java环境变量不生效
- 博客分类:
- jdk
今天找同事换了个jdk8,配置好环境变量死活就是不生效,后来才发现这台电脑之前有人安装过jdk7的版本,是安装版的,所以在system32文件夹下面有java,javac等命令,环境变量会直接使用system32的,而不使用配置好的,删除掉system32下面的即可生效
java中的线程中断,并不是让线程终止,而且通过一个状态为来通知线程是否要中断,该线程中断与否,是让线程自己去判定,而不是外部线程来执行。
interrupt方法,为设置该线程中断位为true,默认为false
isInterrupt方法,判定 ...
jenkins跨服务器拷贝文件脚本
- 博客分类:
- jenkins scp
jenkins在做集成的时候,有时候war包在一台机器,但是服务器在另外一台机器,这样可以在服务器机器上面配置一些脚本,这个脚本跨机器拷贝war到自己的机器上面来,利用scp命令即可,但是scp命令在默认环境下,是需要密码的,这里用ssh来信息,不需要密码即可拷贝文件
例如A服务器IP192.168.1.223是war服务器
B服务器IP192.168.1.193是应用服务器
那么首先在B服务器执行 ssh-keygen -t rsa,一路会车下去,在/root/.ssh目录下面会生成id_rsa和id_rsa.pub两个文件,将id_rsa.pub复制一份出来
cp id ...
在使用redis集群的时候,由于要使用ruby,在centeros中,默认安装的ruby版本比较低,redis需要2.2以上的,所以自己去安装一下
首先挑选自己需要的版本
http://www.ruby-lang.org/en/downloads/
tar -xvzf ruby-2.3.6.tar
cd ruby-2.3.6
./configure
make
make install
安装完成后,看看是否安装成功
ruby -v
redis单机使用
- 博客分类:
- redis spring
首先pom文件中引入
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis< ...
mysql 随机order by
- 博客分类:
- mysql
特殊业务场景下,需要对数据库的数据,进行随机查询出来,mysql有两种方案
SELECT * FROM b_user ORDER BY id LIMIT 99,3 ;
SELECT * FROM b_user ORDER BY RAND() LIMIT 3 ;
第一种,从随机位置获取固定的数据,前面的99可以通过一些其他方式给予赋值,后面的则固定
第二种,利用rand函数获取
个人认为第一种的效率会快一些
mysql 查找配置文件
- 博客分类:
- mysql
由于服务器的mysql是上一个同事安装的,导入数据的时候,发现临时缓存配置的不够,所以直接上服务器改配置文件,首先用find命令查出my.cnf在哪儿
有很多配置文件
用ps命令找出mysql启动使用的配置文件
这里发现,没有指定配置文件
那只有查看mysql默认读取文件了
mysql --help|grep 'my.cnf'
这个是mysql启动默认在加载配置文件顺序,逐一查看各个目录,发现都没有配置文件
这个时候,其实mysql就是使用了默认的启动配置,如果需要手工配置,将my.cnf文件拷贝至上面任意目录即可,注意,优先级顺序
dubbo+mybatis+log4j
- 博客分类:
- dubbo
将之前的provider项目加入mybatis
首先在pom中引入mybatis依赖
<!-- mybatis依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
& ...
利用maven的插件,自动生成mybatis中的generator是最方便的
在resources中配置mybatis配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-co ...
zookeeper多节点配置
- 博客分类:
- zookeeper
首先在各台机器上面都安装zookeeper,这里配置两台机器
192.168.1.222和192.168.1.223
在配置文件中新增
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/appl/zookeeperdir/data
dataLogDir=/appl/zookeeperdir/log
clientPort=2181
server.1= 192.168.1.222:2888:3888
server.2= 192.168.1.223:2888:3888
配置项的意思
server.A=B:C:D中的A是一个数 ...