跳至主要内容

博文

目前显示的是 一月, 2009的博文

SVN Tags Operation

快过年了,要放十几天的假,为了不至于让代码荒废,特地做打上标签以备节后使用。查了一下svn的命令,主要用到的就是三个命令: svn copy svn delete svn move 以下是Eclipse中的操作日志: *** Delete svn delete "https://svn.mysvnsrv.com/tags/MILESTONE_R090120" \ -m "It's a incorrect tag, need to be removed." \ --username "jlazy" Committed revision 2042 *** Ok (took 00:05.048) *** Copy svn copy "https://svn.mysvnsrv.com/trunk/mvweb" \ "https://svn.mysvnsrv.com/tags/mvweb" \ -m "Copy the repository to tags." \ --username "jlazy" Committed revision 2043 *** Ok (took 00:10.860) *** Rename svn move "https://svn.mysvnsrv.com/tags/mvweb" \ "https://svn.mysvnsrv.com/tags/mvweb_r20090121" \ -m "Rename the tag to append date info." --username "jlazy" Committed revision 2044 *** Ok (took 00:07.095)

SQL查询优化记录: MYSQL 中 FULL OUTER JOIN 的处理

从 FULL OUTER JOIN 到 UNION 再到 IFNULL 数据库中有一个记录对特定资源访问的表,名为 tbl_navigation_logs (结构如下)。 Field Type Null Key Default Extra id int(11) NO PRI auto_increment customer int(11) YES MUL session varchar(100) NO ipaddress int(11) NO time datetime NO uid varchar(512) NO portal int(11) YES MUL title int(11) YES MUL item bigint(20) YES MUL channel int(11) NO generated by HeidiSQL 在开发业务逻辑的时候遇到一个分支查询:根据访问者来统计对某个特定资源的访问次数。仔细分析一下,一共有两种可能的情况——若customer字段非空,则根据 DISTINCT(`customer`, DATE(`time`))进行访问次数统计,即同一天内同一用户的若干次访问仅算作1次有效,这适用于登录用户的访问统计。否则,就根据DISTINCT(`session`)来统计访问次数。就业务逻辑而言,就是分别将这两种情况都统计出来,最后做一个加法求和。 第一种直观的思路,就是分别将两种分支情况用select语句选择出来,再做一个合并。这里,FULL OUTER JOIN 是合适的。可惜开发环境所使用的MySQL 5.1数据库不支持FULL OUTER JOIN的实现,只能用一个拐弯的UNION来实现…… select _t.* FROM ( SELECT t1.vdate as `visitDate`, (IFNULL(t1.vcount,0) + IFNULL(t2.vcount,0)) as `accessCount` FROM ( SELECT DATE(`time`) AS `vdate`, COUNT(DISTINCT `customer`, DATE(`time`)) AS `vcount` FROM `tbl_navigation_log` WHERE `customer` is not null ...

改写一段自启动服务的脚本

用了一年多的Ubuntu,平时写脚本读脚本渐渐的已经习惯了Debian风格的函数调用,最近因为工作需要,在Fedora服务器上要加入一个自启动服务,花了两天时间重写一段脚本。po上来以备有相同需要的筒子参考。 无论是在Ubuntu还是Fedora下面,我用的shell都是bash,所以基本的命令都是想通的。只是在/etc/init.d里面有几个函数族不太一样。以下先将最终写好的Fedora脚本贴出来,然后再罗嗦几句…… # !/bin/bash # # chkcofig: 35 -80 50 # Description: Company Application Server Implementation # # Check the privilege if [ `id -u` -ne 0 ]; then echo "You need root privileges to run this script" exit 1 fi # Source function library. . /etc/init.d/functions . /lib/lsb/init-functions # Configurations (could be defined in /etc/sysconfig/mvas) APP_NAME=mvas PID_FILE=/var/run/${APP_NAME}.pid LOCK_FILE=/var/lock/subsys/${APP_NAME} CATALINA_HOME=/usr/share/tomcat5 APPSERVER_HOME=${MVAS_HOME-/etc/comp/privaty} pidof_mvas() { local pids=`pidof /usr/bin/java` echo "pid = $pids" for ii in $pids; do echo "testing $ii " if [ -d /proc/$ii ]; then hit=`ps ax | grep $ii | grep appsrv\/conf` [ -n "$hi...