月度归档:2012年02月

慎用mysql的join语句和in子查询语句,普通查询可能是最好的优化。

服务器mysql集群,表引擎ndbcluster。

其中查3张表,原语句为:

select user.uid,user.uname,user.idcard_status,user_introduction.user_pic
from user left join user_introduction on user.uid = user_introduction.uid
where user.uid in(select uid from participate_class where cid = '11428' and paystatus = 1) ;

表数据总共9K+条左右的数据 ,所以说数据并不多,但是这个sql的执行时间让人惊讶: 35sec~36sec。其中in子查询拆分来查都很快,一旦组合起来就慢的要死。

Continue reading 慎用mysql的join语句和in子查询语句,普通查询可能是最好的优化。

ubuntu下tomcat的启动管理命令脚本

同事收集各种资料写的一个比较完善的tomcat服务器管理脚本,比之前的管理要好很多,启动停止会先检查tomcat进程情况,目前用来没有发现问题。

将该脚本保存到/etc/init.d/tomcat7 即可,使用方法:

/etc/init.d/tomcat7 start
/etc/init.d/tomcat7 stop
/etc/init.d/tomcat7 restart

脚本内容如下,需要替换相应目录为实际目录:

 

Continue reading ubuntu下tomcat的启动管理命令脚本

mysql管理相关命令

mysql> show table status like ‘mytable’ \G;

*************************** 1. row ***************************

Name: mytable 表名

Engine: InnoDB 存储引擎伟InnoDB

Version: 10 mysql版本

Row_format: Compact 行格式。有Dynamic,fixed,Compact等格式。Dynamic是动态行,表字段里面宝航varchar,BloB等不定长字段。fixed是定长行。Compact是行压缩。

Rows: 0 表中的行数

Avg_row_length: 0 平均每行的字节数

Data_length: 16384 整个表的数据量(字节)

Max_data_length: 0 表最大的容量。0表示无限

Index_length: 0 索引数据占用磁盘空间的大小

Data_free: 10485760 表示已分配但还未被使用的空间大小。

Auto_increment: NULL 下一个AUto_increment的值

Create_time: 2011-08-06 22:39:46 创建时间

Update_time: NULL 更新时间

Check_time: NULL 使用check table等命令时的检查时间

Collation: utf8_general_ci 默认字符集和字符列排列顺序

Checksum: NULL 如果启动,则表示整个表的校验和

Create_options: max_rows=4294967295 avg_row_length=32 表创建时的选项

Comment:

1 row in set (0.00 sec)

Ubuntu下共享软件Samba的安装与配置

来源于: http://blog.csdn.net/liufei_learning/article/details/6895127

可以用于linux与linux、windows主机间的文件共享。

一.Samba的安装:

$ sudo apt-get insall samba
$ sudo apt-get install smbfs

二. 创建共享目录:

$ mkdir /home/work/samba_share

#若不更改权限,windows下不能写入(适用于只读共享)!!!
$ sudo chmod 777 /home/work/samba_share

三. 修改Samba配置文件:

# 备份samba的配置文件
$ cp /etc/samba/smb.conf/etc/samba/smb.conf.old
$ sudo vi /etc/samba/smb.conf

在文件最后添加如下内容

Continue reading Ubuntu下共享软件Samba的安装与配置

iBatis org.apache.ibatis.transaction.TransactionException – Error configuring AutoCommit

最近发现用mybatis实现的登录功能,偶尔会爆出如下异常:

org.apache.ibatis.exceptions.PersistenceException: 
### Error opening session.  Cause: org.apache.ibatis.transaction.TransactionException: Error configuring AutoCommit.  
Your driver may not support getAutoCommit() or setAutoCommit(). Requested setting: false. 
Cause: com.mysql.jdbc.CommunicationsException: 
Communications link failure due to underlying exception... ...

多试几次以后,就又正常了,这个异常不是一直存在。不得其解,google 之,得到一种解决方案,不过他遇到的情况发生在mysql重启之时。

源地址: http://burtsev.net/en/2012/01/12/100

解决此问题,需要在mybatis(iBatis)的配置文件中加入两个属性:poolPingQuery 和 poolPingEnabled。具体如下:

Continue reading iBatis org.apache.ibatis.transaction.TransactionException – Error configuring AutoCommit

温故而知新-java Exception的设计与正确使用

当工作了一段时间,慢慢积累出经验,再回顾一些基础的时候,往往可以理解的更加深入,并由此想到自己以前的一些场景案例是可以更优雅的。

做java没多久,转了前端,不过并没有全部丢弃java,反而写多了js以后,惠及java,有了不同的感受,莫非是殊途同归么。

或许过了N久,再回来看这时候的记录,又有不同感受。

Continue reading 温故而知新-java Exception的设计与正确使用

LNMP一键安装包正常使用期间出现nginx 502 Bad Gateway错误

最近站点隔一两天就会出现nginx 502 Bad Gateway错误,无法访问,以前都好好的,莫非是流量上来了的缘故?

因为站点是用LNMP一键安装包搭建的环境,所以google了下这方面的情况,得到两个可能的解决方案,试试看了。

最后验证第三种方案相当靠谱,用了以后就没有出现过502现象。

Continue reading LNMP一键安装包正常使用期间出现nginx 502 Bad Gateway错误

WordPress api + 使用指南中文手册CHM版

wordpress中文使用+API手册,根据http://www.wordpress.la/codex.html的内容,制作了离线的chm版本,方便无网络的情况下查询资料。

下载地址:wordpress中文使用+API手册

huige童鞋发现该chm右侧网页打不开 ,并找到原因:要打开的CHM文件上右键属性,会在底下属性中多了一个“解除锁定”,点击后就可以正常显示了。有同样的情况的同学,不妨试试这个方法。

 

Nginx支持wordpress的固定链接

第一种方式来自 http://blog.chenlb.com/2010/10/nginx-deploy-wordpress.html

index  index.php index.html index.htm;
location  / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
}

第二中方式摘自LNMP一键安装包的配置文件:

location / {
if (-f $request_filename/index.html){
                rewrite (.*) $1/index.html break;
        }
if (-f $request_filename/index.php){
                rewrite (.*) $1/index.php;
        }
if (!-f $request_filename){
                rewrite (.*) /index.php;
        }
}