摘要: 网上有人说要想让mysql_pconnect正常稳定的工作,必须保证mysql max_connect参数设定大于或等于apache的最大线程(进程)数。这句话是有一定道理的。这要简单了解mysql_pconnect的工作机制才能说明白。简单的说就是apache的每一个进程数都可能保留一个mysql的连接。 比如max_connect参数设置为100,apache的最大进程数位101。刚好apache有100个进程存放了mysql的连接,但是也刚好apache分配第101个进程去执行一个php脚本,也刚好这个脚本也要连接php,结果就悲剧了,肯定获取连接失败,被mysqld拒绝了,因为mysqld不允许客户端存在第101的线程。最不爽的是,apache并不是每一个进程都访问php脚本,它还可以是图片、静态页面等等。但是,这个进程是不会主动放弃连接的,毕竟随意放弃也就是去了p的意义了。 所以用apache+mysql_pconnect要把握好配置,个人感觉高访问db的,这个组合不太靠谱,mysql_connect非p模式靠谱。 上面说了apache+mysql_pconnect 阅读全文
posted @ 2013-07-18 17:52 西瓜先生 阅读(809) 评论(0) 推荐(1) 编辑
摘要: 索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),则总共需要100s(但实际上要好很多很多)。如果对之建立B-Tree索引,则只需要进行log100(10^6)=3次页面读取,最坏情况下耗时30ms。这就是索引带来的效果,很多时候,当你的应用程序进行SQL查询速度很慢时,应该想想是否可以建索引。 阅读全文
posted @ 2013-07-17 18:40 西瓜先生 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 其实就是一些策略正则,写好了就留下来以后用。 阅读全文
posted @ 2013-07-17 18:06 西瓜先生 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 试想这样一个场景,一个经常访问的网站,每次打开它的页面都要要花费6 秒;同时另外一个网站提供了相似的服务,但响应时间只需3 秒,那么你会如何选择呢?数据表明,如果用户打开一个网站,等待3~4 秒还没有任何反应,他们会变得急躁,焦虑,抱怨,甚至关闭网页并且不再访问,这是非常糟糕的情况。所以,网页加载的速度十分重要,尤其对于拥有遍布全球的5亿用户的Facebook(全球最大的社交服务网站)这样的大型网站,有着大量并发请求、海量数据等客观情况,速度就成了必须攻克的难题之一。 阅读全文
posted @ 2013-07-17 17:28 西瓜先生 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 话说有这么一个表:CREATETABLE`user_group`(`id`int(11)NOTNULLauto_increment,`uid`int(11)NOTNULL,`group_id`int(11)NOTNULL,PRIMARYKEY(`id`),KEY`uid`(`uid`),KEY`group_id`(`group_id`),)ENGINE=InnoDBAUTO_INCREMENT=750366DEFAULTCHARSET=utf8 看AUTO_INCREMENT就知道数据并不多,75万条。然后是一条简单的查询: SELECTSQL_NO_CACHEuidFROMuser_gr.. 阅读全文
posted @ 2013-07-05 20:28 西瓜先生 阅读(387) 评论(0) 推荐(0) 编辑
摘要: PHP中获取文件扩展名的N种方法 从网上收罗的,基本上就以下这几种方式:第1种方法:function get_extension($file){substr(strrchr($file, '.'), 1);}第2种方法:function get_extension($file){return substr($file, strrpos($file, '.')+1);}第3种方法:function get_extension($file){return end(explode('.', $file));}第4种方法:function get_ext 阅读全文
posted @ 2013-02-26 11:46 西瓜先生 阅读(1374) 评论(0) 推荐(1) 编辑
摘要: 原文:http://getcomposer.org/doc/00-intro.md简介composer是PHP中的一个依赖关系管理工具。只要(按指定格式)声明项目所依赖的库,composer就可以为我们安装这些库。依赖关系管理composer不是包管理器。不错,它处理“包”或库,但他的管理基于单个项目,它把库安装到项目中的一个目录中(例如:vendor)。缺省情况下,composer从不在全局范围安装任何东西。因此,composer是一个依赖关系管理器。这并不是种全新的思想,composer受到node的npm和ruby的bundler的启发。但对PHP来说,还没有这样的工具。composer 阅读全文
posted @ 2013-02-26 11:39 西瓜先生 阅读(357) 评论(0) 推荐(0) 编辑
摘要: <?php print(int)pow(2,69);?>以上程序打印出什么?for(var i =0;i <5;i++){ setTimeout(function(){ alert(i); },500);}以上javascript代码会输出什么?A、0B、5C、undefinedD、4下面的代码输出的结果是什么?<?phpif($a =100&& $b =200){ var_dump($a,$b);}?> 阅读全文
posted @ 2013-02-26 11:38 西瓜先生 阅读(132) 评论(0) 推荐(0) 编辑