摘要: 这是一个经常被时时提出来的问题,很多时候我们以为理解了、懂了,但深究一下,我们却发现并不懂。方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简单的回答两者定义的区别,静态方法不需要new就可以使用 实例化方法需要new了以后才可以使用。。。。我们真的理解了吗?从实际项目开发说起,这里有开发项目的三种方式:开发项目中把BLL和DAL分开,在BL... 阅读全文
posted @ 2009-06-08 20:25 window07 阅读(409) 评论(0) 推荐(0) 编辑
摘要: memcachedb故名思义就是 memcached+ bdb,是基于memcached Socket层和berkeley-db存储层结构的实现,是新浪互动社区技术团队2007年的一项重大的技术成果,现在应用于新浪互动社区多个产品线中,其中包括新浪博客等重头产品。能够实现任意memcache api的调用、数据实时落地以及主辅实时备份。  选择memcachedb:没有什么特殊的原因,我们有最好的... 阅读全文
posted @ 2009-06-08 11:41 window07 阅读(617) 评论(1) 推荐(0) 编辑
摘要: 在Linux中可以将一部分内存当作分区来使用,我们称之为RamDisk。对于一些经常被访问的文件,而它们又不会被更改,可以将它们通过RamDisk放在内存中,即可明显地提高系统的性能。当然你的内存可要足够大了。RamDisk有两种,一种可以格式化,加载,在Linux内核2.0/2.2就已经支持,其不足之处是大小固定。另一种是内核2.4才支持的,通过Ramfs或者tmpfs来实现,它们不能被格式化,... 阅读全文
posted @ 2009-06-08 11:40 window07 阅读(592) 评论(0) 推荐(0) 编辑
摘要: 如何从源码包安装软件?从源码包安装软件最重要的就是仔细阅读README INSTALL等说明文件它会告诉你怎样才能成功安装通常从源码包安装软件的步骤是:tar jxvf gtk+-2.4.13.tar.bz2 解开源码包cd gtk+-2.4.13/ 进入源码目录./configure 似乎在某些环境下./configure会造成终端退出而使用. configure则会正常运行,如果有这个现象,就... 阅读全文
posted @ 2009-06-08 11:39 window07 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 因为我们新浪项目的需要,接触了一下SINA SQS(Sina Simple Queue Service ),使用它可以创建一个队列,然后从不同的地方往里面放东西,然后又可以在不同的地方不停的往外取东西,其实它就是一个分布式的消息传递通道。其实的它的前身是Amazon SQS,包括亚马逊简单队列服务也是基于它。包括现在很热的云计算也可以使用它来做数据传递。  队列的基础结构通常是在公司网络的内部创建... 阅读全文
posted @ 2009-06-08 11:38 window07 阅读(995) 评论(0) 推荐(0) 编辑
摘要: 直接用 memcache 来作 PHP 的 session.save_handler。1. 安装 memcached,还是那套 ./configure; make; make install,注意 memcached 用 libevent 来作事件驱动,所以要先安装有 libevent。2. 安装 pecl::memcache,用 pecl 命令行工具安装:pecl install memcach... 阅读全文
posted @ 2009-06-08 11:37 window07 阅读(520) 评论(0) 推荐(0) 编辑
摘要: 【APACHE的工作方式】prefork模式(默认)这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工作方式类似于Apache 1.3。它适合于没有线程安全库,需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。这个MPM具有很强的自我调节能力,只需要很少的配置指令调整。最重要的是将MaxClients... 阅读全文
posted @ 2009-06-08 11:36 window07 阅读(12218) 评论(0) 推荐(0) 编辑
摘要: 大学的数据库忘记了,再学习一下。  构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进... 阅读全文
posted @ 2009-06-08 11:35 window07 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 一、PHP SESSION 的工作原理在解决问题之前,先来了解一下 PHP SESSION 的工作原理。在客户端(如浏览器)登录网站时,被访问的 PHP 页面可以使用 session_start() 打开 SESSION,这样就会产生客户端的唯一标识 SESSION ID(此 ID 可通过函数 session_id() 获取/设置)。SESSION ID 可以通过两种方式保留在客户端,使得请求不同... 阅读全文
posted @ 2009-06-08 11:34 window07 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 利用NFS来共享session,如果session量比较大并且所有的session文件都在同一个子目录下的话,那么可能会由此带来很严重的负载问题,甚至导致网站无法使用。本文就是对这个方案做一下详细的解说。首先,修改 php.ini的 session.save_path 选项,大致如下:session.save_path = “2;/tmp/php_sess”意为把sessi... 阅读全文
posted @ 2009-06-08 11:34 window07 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 一、同一根域名的多站点登录共享问题描述:  一个门户网站的多个子域网站向外提供服务,实现全站的用户登录。比如在http://blog.163.com登录之后,在http://mail.163.com或者http://www.163.com也已经登录。它们的根域名是163.com。解决方案一(共享cookie验证):解决方案二(共享session验证):二、不同根域的多站点登录共享问题描述:  一个... 阅读全文
posted @ 2009-06-08 11:33 window07 阅读(634) 评论(0) 推荐(0) 编辑
摘要: 1. 原始单据与实体之间的关系  可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。  〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情... 阅读全文
posted @ 2009-06-08 11:33 window07 阅读(409) 评论(2) 推荐(0) 编辑
摘要: Apache2.0在性能上的改善最吸引人.在支持POSIX线程的Unix系统上,Apache可以通过不同的MPM运行在一种多进程与多线程相混合的模式下,增强部分配置的可扩充性能.相比于Apache1.3,2.0版本做了大量的优化来提升处理能力和可伸缩性,并且大多数改进在默认状态下即可生效.但是在编译和运行时刻,2.0也有许多可以显著提高性能的选择.MPM(Multi-ProcessingModul... 阅读全文
posted @ 2009-06-08 11:32 window07 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 【总体优化建议】1、 在一般情况下,应该尝试以非冗余方式(查看数据库理论中的第三正则形式)保存数据,但是为了获得更快的速度,可以冗余字段或创建总结表。2、当MyISAM使用动态表格式时,偶尔使用OPTIMIZE TABLE可以避免碎片。可以写一个脚本程序定时执行优化。3、在Web服务器中,图象和其它二进制资源应该作为文件存储。也就是仅在数据库中存储的文件的引用地址而不是文件本身。大多数Web服务器... 阅读全文
posted @ 2009-06-08 11:32 window07 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度。3、preg_replace 比str_replace速度快,strtr的执行速度将近是preg_replace的4倍。4、$row[’id’] 的速度是$row[id]的7倍。5、... 阅读全文
posted @ 2009-06-08 11:31 window07 阅读(124) 评论(0) 推荐(0) 编辑
摘要: Apache经典的Web服务器除了慢没有别的缺点了对了,Apache2对fcgi支持并不好非常好用的proxy和proxy_ajp(很多人用它作为tomcat的前端)不支持epoll(这年头,epoll几乎是性能的必备) Nginx速度快,占用资源少杀手级的proxy和rewrite非常不错的静态文件能力最适合作为整个网站的前端服务(将php、svn等不同请求发送往后端apache)其他功能马马虎... 阅读全文
posted @ 2009-06-08 11:31 window07 阅读(1197) 评论(1) 推荐(0) 编辑
摘要: 一、单字节SQL注入MYSQL的SQL注入已经由来已久,以下是普遍采用的注入步骤:1、在GET参数上加一个/*或者#(mysql专有的注释),判断数据库是否是mysql,比如:http://www.xxx.com.cn/article.php?id=1607 and 1=1/*2、猜解某表的字段数,从order by 1一直更改到页面出错为止,就可以得到该表的字段数注入URL:http://www... 阅读全文
posted @ 2009-06-08 11:30 window07 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 今天朋友的网站mysql连接超过限制,网站基本上动不了了,分析过他的流量后发现不是流量暴增或者黑客攻击引起的。于是登录他的mysql服务器,做了以下检查:1、用show processlist查看mysql正在执行的线程。发现大量的sleep和超时的线程。2、kill掉所有sleep的或者超时的线程。但发现连接数马上又暴增。仔细观察一些超时的连接所执行的sql语句,发现跟它的user表相关的查询超... 阅读全文
posted @ 2009-06-08 11:27 window07 阅读(1087) 评论(0) 推荐(0) 编辑
摘要: memcache_engine是第三方开发的一个MySQL数据库的存储引擎,目前只支持MySQL5.1数据库,他能够把memcachedb作为MySQL数据库的一个存储引擎和MySQL集成起来,让用户通过标准的SQL查询语句访问memcachedb中存放的数据。  它的优点:已经不言而语了:高性能、分布式、支持sql语句。  它的限制:  1、表必须有主键。  2、不支持自增ID。  3、必须使用... 阅读全文
posted @ 2009-06-08 11:27 window07 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 一、分我们知道,对于一个大型网站来说,可伸缩性是非常重要的,怎么样在纵向和横向有良好的可伸缩性,就需要在做架构设计的时候考虑到一个分的原则,我想在多个方面说一下怎么分:首先是横向的分:1.大的网站化解为多个小网站:当我们一个网站有多个功能的时候,可以考虑把这个网站拆分成几个小模块,每一个模块可以是一个网站,这样的话我们到时候就可以很灵活地去把这些网站部署到不同的服务器上。2.静态动态分离:静态文件... 阅读全文
posted @ 2009-06-08 11:26 window07 阅读(220) 评论(0) 推荐(0) 编辑