2012年11月 的存档

Mysql设置自增长主键的初始值

2012年11月23日 没有评论

Mysql可以使用AUTO_INCREMENT来设定主键的值为自增长的,其默认值是1,如果想把它的初始值设置为1000,比较笨的办法是先插入一条记录并指定主键的值为999,然后delete改行记录,例如:

insert into test(pk) values(999);
delete from test where pk = 999;

更好的方法是使用alter的方法来直接修改,例如:

alter table test AUTO_INCREMENT = 200;

mysql 语法 on duplicate key update

2012年11月23日 没有评论

需要根据某个时间点来统计数量,例如统计每天网站的访问量,本人以前的做法是先查询当前有没有记录,如果存在就更新访问量的值,否则就插入一条。其实在Mysql中可以一条SQL语句来搞定,只要使用ON DUPLICATE KEY UPDATE即可。例如:

insert into daypv(day,cnt) values('2012-11-22',1) 
     on duplicate key update cnt = cnt + 1;

如果insert 末尾指定了on duplicate key update,插入数据会导致一个primary key或unique索引出现重复,那么就对已经存在的行执行update操作,条件就是primary key或unique索引。

对于一次插入一条记录没有问题,如果一次插入多条记录,其中某些可能会造成primary key或unique索引重复,那该如何处理呢。其实和单条处理类似,只要在后面使用values函数即可,例如:

insert into daypv(day,cnt)
	values('2012-11-22',1),
	('2012-11-23',2),
	('2012-11-24',3),
	('2012-11-25',4)
	on duplicate key update cnt = cnt + values(cnt);

上述 “cnt = cnt + values(cnt)”中第一个是cnt指更新的字段,第二个指原来的值,第三个是上面insert对应行中指定的cnt的值,例如2012-11-24记录已经存在,cnt的原始值为5,那么执行上述sql后,2012-11-24的cnt就为8 ( 3 + 5)。

另外需要注意的是 ON DUPLICATE KEY UPDATE 是Mysql特有的,不是标准的SQL语法。

分类: MySQL 标签:

Mysql如何修改unique key

2012年11月23日 没有评论

mysql可以使用unique key来确保数据的准确性,unique key可以是一个字段,也可以是多个字段,对应已经存在的unique key如何修改呢?目前我使用的方法是分两步来完成,先drop掉,然后在创建。需要注意的是drop时关键字是“index”,而创建时关键词是“unique key”,命令如下:

alter table table_name drop index `uk_name`;

alter table table_name add unique key `new_uk_name` (`col1`,`col2`);

注意:如果表中已经存在数据,可能会创建失败,原因是col1, col2无法满足unique。

分类: MySQL 标签:

单独安装apache的ab压力测试工具

2012年11月23日 1 条评论

Apache服务自带了应该用于压力测试的工具ab(ApacheBench),对应做一些简单的压力测试,它完全能够胜任。本文介绍在Centos中不安装apache的情况下如何获取安装ab。

ab运行需要依赖apr-util包,安装命令为:

yum install apr-util

下载apache的rpm包,可以直接去官网手动下载,当然也可以使用命令yumdownloader来完成,yumdownloader是yum-utils包下面的,如果没有安装yum-utils,则需要先安装它。因为解压apache的rpm包时会在当前目录下生成etc、var和usr三个目录,所以建议先创建一个临时目录,命令如下:

mkdir ~/abtmp
cd ~/abtmp

yumdownloader httpd

rpm2cpio httpd-*.rpm | cpio -idmv

上述命令成功后,可以在~/abtmp下的usr/bin中看到一个名为ab的文件,复制到系统PATH下就大功告成,例如。

cp ~/abtmp/usr/bin/ab /usr/bin

解决baidu屏蔽来自chrome的google搜索

2012年11月16日 没有评论

今天使用goolge搜索时,点击搜索结果到百度看到了传说中的“中间跳转页”,即是出现“点击这里继续访问您选择的百度知道结果>>”提示,而且这还是针对浏览器的,使用chrome会这样,而Fireofx、safari则没有。对这种情况果断不能忍啊,上网一找,使用chrome下的脚本扩展Tampermonkey可以轻松搞定。Tampermonkey真是一个好东西,它允许用户自己定义JS脚本在指定的页面上运行,也就是说通过它可以修改访问页面上的很多东西,比如你经常访问的某个网站,你觉得字体太小,可以使用自己写一个脚本来加大字号,可以理解自己写的js是页面自带js一样。下面介绍如何解决上述的问题。

1、安装Tampermonkey。直接去Chrome Web Stroe搜索Tampermonkey,然后安装即可。

2、安装成功后应该在网址输入栏后出现Tampermonkey的小图标。点击图标选择“新建脚本”,然后把下面内容复制进去保存即可。

// ==UserScript==
// @name       baidu ressafe page auto rediret
// @version    1.0
// @description  chrome浏览器中取消百度对Google搜索的自动跳转
// @include    http://*baidu.com/search/ressafe.html*
// @author     YangYZ
// ==/UserScript==
(function(){
    var loc = window.location.href;
    if (loc.match("ressafe\\.html\\?q=.*&url=.*baidu.com")) {
        window.location.href = window.location.href.replace(/.*url=(.*)&*/,"$1");
    };
})();

说明:注释中使用@xxx 后的信息会在脚本管理中显示,其中@include对设定的网站启用脚本,可以使用通配符。脚本内容很简单,就是判断当前的url是不不是“中间页”的地址,如果是就使用 window.location.href跳转到真正的目标地址。

mac os X 的休眠模式

2012年11月13日 没有评论

最近发现我的MBP合上盖子后需要一到两分钟的样子才会进入到休眠状态,所以在网上查了一下,原来mac os x有三种休眠方式。

方式1:mode 0,电脑进入休眠,但是电源或电池还是会继续会向内存供电,内存的数据不会写入硬盘。所以能够快速进入休眠状态,同样恢复开机也很快。

方式2:mode 1,内存的数据会写入到硬盘,然后系统停止对内存的供电,让系统进入休眠状态。如果内存大,写硬盘需要时间,所以这种方式所需要的时间比较长,恢复开机时间也较长。

方式3:mode 3,此方式叫做safe sleep模式或混合休眠模式。因为他说混合了方式1和方式2。就是说内存的数据在会存在内存和硬盘两个地方,即使通过电池供电到电池耗尽,接通电源后系统也能恢复到先前的状态。由于要写硬盘,所以时间也会比较长,但是恢复开机比较快。

MBP默认采用方式3,因此当内存使用8G时,休眠时间会比较长。既然提供了上述三种模式,当然也是可以修改的,但是想要修改必须在终端下使用命令来完成。

查看当前使用哪种休眠模式,其中 hibernatemode 的值对应上述的模式,
hibernatefile硬盘存储内存镜像的文件
pmset -g

修改休眠模式使用,modetype 就是上述的0、1、3
sudo pmset -a hibernatemode modetype 

同样可以修改内存镜像文件的存放路径
sudo pmset -a hibernatefile

本文参考了 http://bisn.me/mac-os-x-hibernatemode.html,该文更加详细的描述三种休眠模式的优缺点。

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