Sql语句优化注意

1.尽量不要对列名进行函数处理.而是针对后面的值进行处理
例如where col1 = -5的效率比where -col1=5的效率要高
因为后面的条件对列值进行了计算.这样的条件下优化器无法使用索引
而是要针对所有值进行计算之后才能再比较

2.尽量使用和数剧列一样的值进行操作
如果col1是数值型
那么例如where col1 = 2和where col1= ‘2′
则前者效率更高
因为比较字符和数值型的时候
引擎需要把两者都转化成双精度然后进行比较
这样col1上的索引就失去作用了

3.减少函数的使用
例如where col1 >= ‘2009-10-26′ and col1 &[……]

继续阅读

PHP模拟HTTPClient请求

嗯,有个开源的php类snoopy封装了curl,用起来更方便:
http://sourceforge.net/project/snoopy

【 在 cnet 的大作中提到: 】
你要的是一个 http client 的接口,如果是php,用 curl 扩展最直接

PHP程序与服务器端通讯方法小结

假设有10个网站,分布在各地,它们的库存要同步,而数据库不支持远程连接。
我们要实时地取得服务器的库存数,可以通过很多种方法,我所知道的有以下几种:

·CURL方式

·SOCKET方式

·PHP5中的SOAP方式

以下分别给出示例来实现它:

CURL方式

client.php

<[……]

继续阅读

FTP信息代码全解

110 Restart marker reply. In this case, the text is exact and not left to the particular implementation; it must read: MARK yyyy = mmmm where yyyy is User-process data stream marker, and mmmm server’s equivalent marker (note the spaces between markers and “=”.

重新启动标志回应。这种情况下,信息是精确的并且不用特别的处理;可以这样看:标[……]

继续阅读

常见FTP登陆Log信息

1. Connected. Waiting for response.
220 Serv-U FTP Server v4.0 for WinSock ready…
USER anonymous
530 Sorry, no ANONYMOUS access allowed.
QUIT

这个就是不许匿名登录啦

2. Connected. Waiting for response.
220 Serv-U FTP Server v4.0 for WinSock ready…
USER test
331 User name okay, need password.
PASS xxxxxx
5[……]

继续阅读

FTP登陆错误问题分析

*** CuteFTP Pro 2.0 – build Dec 4 2001 ***
状态:> 正在获取列表“”…
状态:> 正在连接到 ftp 服务器 211.*.*.*:* (ip = 211.*.*.*:*)…
状态:> Socket 已连接。正在等候欢迎消息…
220 FTP服务器已启动
状态:> 已连接。正在验证…
命令:> USER software
331 User name okay, need passWord.
命令:> PASS *****
230 User logged in, proceed.
状态:> 登录成[……]

继续阅读

关于ecshop商品属性查询的优化

在书写php查询数据库的SQL语句时,执行效率是我们必须思考的一个问题,ecshop在实现属性筛选时官方的写法是:

/* 扩展商品查询条件 */

if (!empty($filter_attr))
{
$ext_sql = “SELECT DISTINCT(b.goods_id) FROM ” . $ecs->table(‘goods_attr’) . ” AS a, ” . $ecs->table(‘goods_attr’) . ” AS b, ” . $ecs->table(‘goods’) . ” AS g ” . “WHERE “;
$ext_group_good[……]

继续阅读

用Html的MAX_FILE_SIZE值限制文件上传大小

网站上传附件出现错误,用php的error_log方法得到$_FILES的值,结果$_FILES[‘userfile’][‘error’]的值为2,

检查表单里面出现<input type=”hidden” name=”MAX_FILE_SIZE” value=”2097152″ />

把这句去掉之后,上传附件OK,看来就是表单的MAX_FILE_SIZE起的作用。

因此以后我们可以在表单里面添加名字为MAX_FILE_SIZE的隐藏域,限制文件上传的大小,

<input type=”hidden” name=”MAX_FILE_SIZE” value=”209715[……]

继续阅读

在smarty中使用正则替换

将手机号倒数4/5位替换为星号,php的测试用例是这样

<?php

$string = “138265895493”;
$pattern = “/(1d{1,5})dd(d{3,4})/”;
$replacement = “$1**$2”;
print preg_replace($pattern, $replacement, $string);

?>

在smarty中是用regex_replace函数,它参数的写法和php里的preg_replace一样的,可以这样写

<{$sellLogListData.name|regex_replace:”/(1d{1,5})[……]

继续阅读

Apache Nginx lighttpd HAProx Litespeed 缓冲原理解析fastcgi性能

由于最近在忙于web server的开发,对于静态部分跟动态部分的交互一直迟迟未定,缓冲区大小也一直很头疼,看了下面的这篇文章觉得不错,我还是这样觉得,简单的就是最好的,但并不意味着所有处理都用一种方式,正如我在静态输出的socket buffer上面一样,我是根据请求内容的大小来决定缓冲区分配的,即使这样作在系统内部会形成一次内存拷贝(socket回去处理),但是相对于网络的延迟速度快多了,所以我觉得还是根据不同的内容和大小决定缓冲区大小,既不是lighttpd的照单全收,也不是nginx等的8K绣花,对于接收,首先分配一个2k-8K的缓冲区去收,西一头部接收完毕了就可以知道剩下的conte[……]

继续阅读

Erlang不能错过的盛宴

作为程序员,我们曾经闻听很多“业界动态”,“技术革新”,曾经接触很多“高手箴言”,“权威推荐”。这些正确与否,都已成过去!

现在,让我们迎接 Erlang盛宴!

一、经历

2007年 11月在 koders.com搜索代码时,发现 *.erl格式的源文件,感叹开发语言的花样百出,此时,我觉得 erlang是一个丑陋的小家伙,看名字就没有对它提起多少兴趣。

2008年初的时候,公司的项目开发中,我有缘认识了 ejabberd,一个采用 Erlang开发的开源 jabber服务器。我开始为其诱人的特性所倾倒。是时候认真看看 Erlang到底什么样了!

2008年 4月,通过各种资料的搜集,了[……]

继续阅读