2012年1月 的存档

mysql的between的边界问题

2012年1月5日 没有评论

mysql的sql语句中可以使用between来限定一个数据的范围,例如:

select * from user where userId between 5 and 7;

查询userId为5、6,7的user,userId范围是包含边界值的,也等同如下查询:

select * from user where userId >= 5 and userId <= 7;

很多地方都提到between是给定的范围是大于等第一值,小于第二个值,其实这是不对的。此前我一直也是这么认为,通过实验,结论是包含两边的边界值,如果实在拿不准,可以采用>= 、<=的方式来指定条件。

另外 not  between的范围是不包含边界值。

分类: MySQL 标签: ,

配置记录mysql服务器的慢查询日志

2012年1月5日 没有评论

mysql服务可以把超过指定规定时间的sql语句已日志的方式记录下来,检查当前mysql服务有没有记录慢查询的命令为:

/usr/local/mysql/bin/mysqladmin var | grep log_slow | tr -d "|"

如果看到log_slow_queries OFF则没有启用,启用的方法很简单,把如下配置放在mysql的配置文件my.cnf中的mysqld段里即可。

log-slow-queries	= /var/lib/mysql/slow-queries.log
long_query_time		= 1
log-queries-not-using-indexes
log-slow-admin-statements

上面的配置打开了slow query日志,将会捕获了执行时间超过了1秒的查询,包括执行速度较慢的管理命令(比如OPTIMEZE TABLE),并且记录了没有使用索引的查询。这些SQL,都会被记录到log-slow-queries指定的文件/var/lib/mysql /slow-queries.log文件中。

log-slow-queries
存放slow query日志的文件。你必须保证mysql server进程mysqld_safe进程用户对该文件有w权限。

long_query_time
如果query time超过了该值,则认为是较慢查询,并被记录下来。单位是秒。

log-queries-not-using-indexes
MySQL会将没有使用索引的查询记录到slow query日志中。无论它执行有多快,查询语句没有使用索引,都会被记录。有的时候,有些没有使用引索的查询非常快(例如扫描很小的表),但也有可能导致服务器变慢,甚至还会使用大量的磁盘空间。

log-slow-admin-statements
一些管理指令,也会被记录。比如OPTIMEZE TABLE, ALTER TABLE等等。

需要说明的是long_query_time很多地方都说最小是1秒,其实该值可以是一个浮点数,起码在mysql 5版本中可以这么配置,例如 0.1,也就是100毫秒。

分类: MySQL 标签: ,

rsync 的 delete参数

2012年1月5日 没有评论

rsync带上delete的参数后,当源目录中的文件删除,同步后目标目录中的文件也会被删除,如果源目录写法不当,可能无法达到同步删除目标目录的文件。例如:

/usr/bin/rsync -vzrtopg --progress  --delete \
        /home/yangyz/tmp/src/* /home/yangyz/tmp/dest/

当删除src下的文件或文件夹时,同步后dest中还是存在,如果是删除src的子目录下的,同步后dest中会被删除,而下面命令就不一样,不管删除的是哪个文件夹下的内容,同步dest都会做相同的删除

/usr/bin/rsync -vzrtopg --progress  --delete \
       /home/yangyz/tmp/src/ /home/yangyz/tmp/dest/

上述两条命令的不同之处就是在src后面是否带*号,另外如果src目录后不带斜杠,那么是将src目录复制到dest中,包含了src目录,否则是把src目录下的文件同步到dest中,不包含src目录。

分类: Linux 标签: ,

flash覆盖div的解决办法

2012年1月1日 没有评论

当采用相对位置来定义div,如果该区域也存在flash对象,即使div的z-index的设的很大,默认情况下,flash对象会覆盖住div的,解决办法是通过设置加载flash的object的wmode参数,例如

<param  name= "wmode"  value= "transparent">
或
<param  name= "wmode"  value= "opaque">

上述第一个是flash背景透明,第二个则是背景不透明。

另外如果使用swfobject.js来加载swf,则可以使用如下方法:

swfobject.embedSWF(
	"happy_year.swf", 
	"div_container", 
	"350", 
	"350", 
	"9.0.0", 
	"install_flash_player.swf", 
	null, 
	opObjectParams
);

即在最后一个参数上添加wmode的值。

分类: web前端 标签:

关于php的时间相关函数需要注意时区问题

2012年1月1日 没有评论

time()函数能获取一个相对于1901年的时间秒数,但是需要注意,如果系统没有设置时区,那么获得的结果是UTC时间,相对中国用户来说,就是相差了8个小时,例如通过date来获取当前的日期,date(‘Y-m-d’),在早上8点前看到的日期是昨天的,所以需要显示设置时区,可以在php.ini中设置,date.timezone = PRC,或者在使用前用date_default_timezone_set来设置,例如 date_default_timezone_set(“PRC”);

分类: PHP 标签:

无觅相关文章插件,快速提升流量