fmb心得

在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;

猜你喜欢

转载自republicw.iteye.com/blog/1966909