在postgreSQL中使用正则表达式

PostgreSQL真的很强,查询时候还可以用正则表达式。

比如,要查询某个字段是以字母开头的纪录 {{{#!highlight sql select * from dummy where inf1 ~* '^[A-Z]' }}} 以数字开头的纪录 {{{#!highlight sql select * from dummy where inf1 ~ '^[0-9]' }}} 其他的很复杂的查询,只需修改操作符以及正则表达式。

正则表达式的操作符使用方法如下: {{{ ~ 匹配正则表达式,大小写相关。 例: 'thomas' ~ '.thomas.'
~ 匹配正则表达式,大小写无关。 例: 'thomas' ~ '.Thomas.'
!~ 不匹配正则表达式,大小写相关。例: 'thomas' !~ '.Thomas.'
!~ 不匹配正则表达式,大小写无关。例: 'thomas' !~ '.vadim.' }}} 如果不是特别复杂的条件,用LIKE(大小写相关)或者ILIKE(大小写无关)就可以实现。

more ...

nginx php 上传文件大小限制

在php.ini里面查看如下行: {{{ upload_max_filesize = 8M post_max_size = 10M memory_limit = 20M }}}

nginx主配置文件nginx.conf,找到http{}段,添加 {{{ client_max_body_size 20m; }}}

more ...

postgresql 导入导出压缩分割

Date 四 15 十一月 2012 By liugehao Category db.

用pg_dump导出,再导入,大文件用压缩的。 {{{ pg_dump dbname | gzip > filename.gz

Reload with:

gunzip -c filename.gz | psql dbname }}} 或者文档分割: {{{ pg_dump dbname | split -b 1m - filename

Reload with:

cat filename* | psql dbname }}}

more ...

postgresql 进程管理

Date 四 15 十一月 2012 By liugehao Category db.

虽然可以使用 kill -9 来强制删除用户进程,但是不建议这么去做。

因为:对于执行update的语句来说,kill掉进程,可能会导致Postgres进入到recovery mode

而在recovery mode下,会锁表,不允许链接数据库。

通常情况下:使用如下语句

{{{#!highlight sql =# select datname,procpid,query_start,current_query,waiting,client_addr from pg_stat_activity where waiting='t'; }}}

来查看有哪些SQL正在执行。

通过命令: {{{#!highlight sql =# select pg_cancel_backend(线程id); }}} 来kill掉指定的SQL语句。

(这个函数只能 kill Select 查询,而updae,delete DML不生效)

使用 {{{#!highlight sql =# select pg_terminate_backend ...

more ...

python技巧

1到100中6出现了几次? {{{#!highlight python sum([str(x).count('6') for x in range(1,101) ])

list(itertools.ifilter(lambda x: str(x).count('6') > 0, range(1,101))) }}}

实现一个函数,给一个数,只能被5整除时返回字符a,只能被7整除时返回字符b,同时能被5和7整除时返回ab,要求尽量少的使用求余运算。 {{{#!highlight python lambda n: n / 7 * 7 == n def fun(n) s = [] if n / 5 * 5 == n ...

more ...

How can I change 'shmmax'

How can I change 'shmmax'

I have installed Oracle 9i on RedHat 9.

Current value of 'shmmax' is 33554432.

Some people recommend value of appr. 50% of the RAM.

I tried to change the value of 'shmmax' in two ways: {{{ 1. cat 268435456 > /proc/sys/kernel/shmmax 2. sysctl -w ...

more ...

vmware的linux内核补丁

http://pavlinux.ru/vmware/ 下载相应的内核的补丁,安装。 {{{

cd /usr/lib/vmware/modules;

wget http://pavlinux.ru/vmware/8.0.4/source.tar.lzma;

md5sum source.tar.lzma;

e37e41a818a47ec868bdb493197aaf63 source.tar.lzma

tar -xf source.tar.lzma;

vmware-modconfig --console --install-all;

}}} vmware版本,差不多就可以,主要是linux内核版本。

比如vmware 8.0.2, kernel 3.5.0 用 ...

more ...

mysql更改目录不能启动

Date 二 13 十一月 2012 By liugehao Category db.

执行操作 {{{

cp -Rp /var/lib/mysql /data

vi /etc/mysql/my.cnf

datadir = /data/mysql

service mysql start

start: Job failed to start }}}

出错,查看日志 {{{

tail -n 100 /var/log/syslog

Nov 13 16:21:18 ubuntu1204 kernel: [ 1480.661013] type=1400 audit(1352794878.342:128): apparmor="DENIED" operation="mknod ...

more ...

阻止Google转换搜索链接地址

Firefox 安装 Greasemonkey:http://www.greasespot.net/

Chrome 安装 Tampermonkey:http://tampermonkey.biniok.net/crx/tampermonkey_retro.crx

然后安装 http://userscripts.org/scripts/show/125473

或者 {{{#!highlight javascript // ==UserScript== // @name Google Real Link // @namespace http://userscripts.org/scripts/show/125473 // @description Disable the Google search rewrite, always showing and using the ...

more ...

r1.0.4 single node setup

= Single Node Setup = * [[http://hadoop.apache.org/docs/r1.0.4/single_node_setup.html#Purpose|Purpose]] * [[http://hadoop.apache.org/docs/r1.0.4/single_node_setup.html#PreReqs|Prerequisites]] * [[http://hadoop.apache.org/docs/r1.0.4/single_node_setup.html#Supported+Platforms|Supported Platforms]] * [[http://hadoop.apache.org/docs/r1.0.4/single_node_setup ...

more ...