在sql server中,我们可是使用以下update语句对表进行更新:
update a set a.xx= (select yy from b) where a.id = b.id ;
但是在mysql中,不能直接使用set select的结果,必须使用inner join:
update a inner join (select yy from b) c on a.id =b.id set a.xx = c.yy;
java -cp ./tmlogintest.jar com.astrolink.netty.server.Server -Xms1024m -Xmx1024m -Xmn512m -XX:SurvivorRatio=4 -Xss512K -XX:PermSize=64m -XX:MaxPermSize=64m
1.Xms 初始堆大小(默认是物理内存的1/64)
2.Xmx 最大堆大小,默认为物理内存1/4
3.-Xss 每个线程的堆栈大小 JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K.更具应用的线程所需内存大小进行 调整.在相同物理内存下,减小这个值能生成更多的线程.但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右
一般小的应用, 如果栈不是很深, 应该是128k够用的 大的应用建议使用256k。这个选项对性能影响比较大,需要严格的测试。(校长)
4.-XX:PermSize 设置持久代(perm gen)初始值 默认物理内存的1/64
5.-XX:MaxPermSize 设置持久代最大值 物理内存的1/4
6.-Xmn 设置年轻代分配大小
7.XX:SurvivorRatio 分配eden 与survior1 surivior0比例 如果为4这是2+2:4
查看cpu
top -i 当前活动
jmap -heap pid
jstat -gcutil pid
jstat -gc pid
优化tcp连接数
ulimit -n 2048
1.修改方法:
修改/usr/etc/security/limits.conf文件,加入
*soft nofile 20000
*hard nofile 20000
然后reboot系统。
2.上面的方法在不用select方法的情况下是不可以的,如果你用select,
那么仍然只能打开1024个,这是因为select的数目由FD_SETSIZE决定的。
那么我们可以改用poll来替代select,poll数组大小可以根据我们自己的需要来定义,
这样就解决了这个问题。
3.linux中的是通过文件方式来管理系统的,因此系统能承载多少TCP连接和系统文件打
开数目能力是相关的。
另外在/proc/sys/fs/file-max中定义了,系统最多能够打开的文件数目。
对于Linux
echo 65536 > /proc/sys/fs/file-max
然后 ulimit -S -n 8192
查看mysql server超时时间:
msyql> show global variables like '%timeout%';
设置mysql server超时时间(以秒为单位):
msyql> set global wait_timeout=10;
msyql> set global interactive_timeout=10;
今日推荐
周排行