2012年3月30日

SQL优化

摘要: 通常网站的性能瓶颈在数据库查询,如果你希望你的网站在一定阶段之内保持稳定,优化你的SQL和数据库是非常必要的一个优化环节。优化数据库是一个很大的话题,这里只是摘要一些比较关键的优化参考建议,并且需要具体分析项目的情况才能给出最合理的优化建议,所以具体的优化建议你应该咨询你公司的架构师或者DBA。下面是一部分比较重要的建议:1、选择正确的存储引擎以MySQL为例,包括有两个存储引擎MyISAM和InnoDB,每个引擎都有利有弊。MyISAM适合于一些需要大量查询的应用,但其对于有大量写操作并不是很好。甚至你只是需要update一个字段,整个表都会被锁起来,而别的进程,就算是读进程都无法操作直到读 阅读全文

posted @ 2012-03-30 19:52 zhexiao 阅读(134) 评论(0) 推荐(1) 编辑

CSS Sprites : 样式表贴图定位 –SpriteMe 详解

摘要: sprite me 是一个bookmark(书签),因此大家只需要把spriteMe添加到自己的书签的工具栏中,访问任意网站需要使用它的时候,只需要轻轻点击一下sprite me就可以哈~点击以后会在页面的右上方弹出一个覆层。下面是我对qq首页做的spriteMe 的弹出层;下面的图片显示的是spriteMe的一些模块的基本功能介绍~当然在适用它的时候如果我们对它分析的结果中不能做sprite的图片有异议,你可以可以拖拽Non-Sprited Images 的图片直接到上面的Suggested Sprites中,然后点击 make sprite 就可以生成一张css sprites图,至于顶部 阅读全文

posted @ 2012-03-30 19:52 zhexiao 阅读(193) 评论(0) 推荐(0) 编辑

mysql innodb 外键关联约束讲解

摘要: 可通过查表信息查看外键的创建信息:Show create table tablename \G;从mysql3.23.44开始,innodb支持外键约束,跟Oracle基本相同,语法形式如下[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)REFERENCES tbl_name (index_col_name, ...)[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}][ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTI 阅读全文

posted @ 2012-03-30 19:52 zhexiao 阅读(1230) 评论(0) 推荐(0) 编辑

apache基于主机的域名指向

摘要: 这是虚拟主机的样板<VirtualHost *:80>ServerAdmin webmaster@example.com ——管理员邮箱(可以随便写一个)DocumentRoot "/home/phpok-com" ——网站目录ServerNameexample.com —— 要绑定的域名ServerAliaswww.example.com——要绑定的别名,如果有多个别名就用英文逗号隔开CustomLoglogs/example.com_custom_log——用户日志格式(这一行也可以为空)ErrorLog logs/example.com_error_log 阅读全文

posted @ 2012-03-30 19:51 zhexiao 阅读(142) 评论(0) 推荐(0) 编辑

大型高性能网站的十项规则【转】

摘要: 在我们公司ChinaNetCloud,见 过多种不同类型的网站和系统,有好也有差。其中有些系统拥有良好的服务器/网络架构,并且进行了合理的调整和监控 ;然而一般的系统都会有安全和性能上的 问题,不能良好运行,也无法变得更流行。在中国, 开源的LAMP栈是最流行的网络架构,它使用PHP开发,运行在Apache服务器上,以MySQL作为数据库,所有这些都运行在Linux上。它是个可靠的平台,运行良好,是现在全球最 流行的Internet系统架构。然而,我们很难对其规模进行正确的扩展并保持安全性,因为每个应用层都有其自身的问题、缺陷和最佳实践。我们的工作就是 帮助企业用最低的操作成本来创建并运行高性 阅读全文

posted @ 2012-03-30 19:51 zhexiao 阅读(138) 评论(0) 推荐(0) 编辑

PHP优化总结

摘要: 1、如果一个方法可静态化,就对它做静态声明。速率可提升至4倍。2、echo 比 print 快。3、使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接。4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值。5、注销那些不用的变量尤其是大数组,以便释放内存。6、尽量避免使用__get,__set,__autoload。7、require_once()代价昂贵。8、在包含文件时使用完整路径,解析操作系统路径所需的时间会更少。9、如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。10、 阅读全文

posted @ 2012-03-30 19:51 zhexiao 阅读(114) 评论(0) 推荐(0) 编辑

Apache 下配置 mod_Rewrite

摘要: URL 静态化是一个利于搜索引擎的设置,通过 URL 静态化,达到原来是动态的 PHP 页面转换为静态化的 HTML 页面,当然,这里的静态化是一种假静态,目的只是提高搜索引擎的抓取量,Comsenz 旗下的产品 Discuz!、SupeSite/X-Space、ECShop、SupeV、UCHome 等都支持此功能。当然这个功能还需要服务器环境的支持,下面介绍一下如何在 Apache 服务器下配置 URL 静态化的 Rewrite 规则。当然这里分两种情况,一种是独立主机用户,这部分用户拥有对主机的管理权限,因此配置起来比较方便一些。(注:这里就以 Discuz!6.1.0 的 Rewrit 阅读全文

posted @ 2012-03-30 19:50 zhexiao 阅读(339) 评论(0) 推荐(0) 编辑

firefox一些推荐的插件

摘要: Foxmarks/ Xmarks别误会,这是同一个插件。之前的版本叫Foxmarks,在某个版本之后改名叫Xmarks。说起来从这个插件开始这次介绍的第一款真正含义以上火狐的功能插件吧(前面两个,一个是便携版,一个是调IE,呵呵)。这个插件的功能太强大了,他的作用是在多台电脑间同步你的书签(也就是IE里的收藏夹)。具体来说,你一定有这样的体会,当你用IE的时候,当你重做系统的时候,当你又一不小心忘了备份你的收藏夹的时候,或者当你去网吧或公司换了一台电脑而没带备份的收藏夹的时候,那么恭喜你,重新收藏吧。Firefox就可以完全避免此类情况的发生。通过Xmars插件,你可以在该插件的公司注册帐号, 阅读全文

posted @ 2012-03-30 19:49 zhexiao 阅读(336) 评论(0) 推荐(0) 编辑

大型网站架构不得不考虑的10个问题

摘要: 这里的大型网站架构只包括高互动性高交互性的数据型大型网站,基于大家众所周知的原因,我们就不谈新闻类和一些依靠HTML静态化就可以实现的架构了,我 们以高负载高数据交换高数据流动性的网站为例,比如海内,开心网等类似的web2.0系列架构。我们这里不讨论是PHP还是JSP或者.NET环境,我们 从架构的方面去看问题,实现语言方面并不是问题,语言的优势在于实现而不是好坏,不论你选择任何语言,架构都是必须要面对的。这里讨论一下大型网站需要注意和考虑的问题1、海量数据的处理众所周知,对于一些相对小的站点来说,数据量并不是很大,select和update就可以解决我们面对的问题,本身负载量不是很大,最多再 阅读全文

posted @ 2012-03-30 19:49 zhexiao 阅读(114) 评论(0) 推荐(0) 编辑

在ubuntu下,如何打开CHM文件?

摘要: 在ubuntu下,如何打开CHM文件?有的说用CHMsee,也有的说在FF下安装一下叫chm reader的插件,我都安装后,CHMsee打开过程中,自动关闭,而chm reader则打不开里面的链接(也就是章节),大家有什么办法?另文件比较大打不开是不是显示乱码?是的话要打上Adobe Reader+语言补丁 我以前就是这样就能显示出来的除了CHMsee阅读器外还有其他软件,例如KchmViewer 这个很好首先我们安装一个打开chm文件的软件,这个软件叫chmsee.在终端下运行:sudo apt-get install chmsee安装完成后有可能还是打不开,这可能是系统升级时,如果xu 阅读全文

posted @ 2012-03-30 19:49 zhexiao 阅读(1287) 评论(1) 推荐(0) 编辑

ENUM和SET的区别

摘要: ENUM和SET都是比较特殊的字符串数据列类型,它们的取值范围是一个预先定义好的列表。ENUM或SET数据列的取值只能从这个列表中进行选择。ENUM和SET的主要区别是:ENUM只能取单值,它的数据列表是一个枚举集合。它的合法取值列表最多允许有65535个成员。例如:ENUM("N","Y")表示,该数据列的取值要么是"Y",要么就是"N"。SET可取多值。它的合法取值列表最多允许有64个成员。空字符串也是一个合法的SET值。ENUM和SET的值是以字符串形式出现的,但在内部,MySQL以数值的形式存储它们。ENU 阅读全文

posted @ 2012-03-30 19:48 zhexiao 阅读(1286) 评论(0) 推荐(0) 编辑

开发大型高负载类网站应用的几个要点

摘要: 看了一些人的所谓大型项目的方法,我感觉都是没有说到点子上,有点难受。我也说说自己的看法.我个人认为,很难衡量所谓项目是否大型,即便很简单的应用在高负载和高增长情况下都是一个挑战.因此,按照我的想法,姑且说是高负载高并发或者高增长情况下,需要考虑的问题.这些问题,很多是和程序开发无关,而是和整个系统的架构密切相关的. 数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(主-从)方式进行同.. 阅读全文

posted @ 2012-03-30 19:48 zhexiao 阅读(127) 评论(0) 推荐(0) 编辑

mysql优化方案

摘要: 总体优化建议】1、 在一般情况下,应该尝试以非冗余方式(查看数据库理论中的第三正则形式)保存数据,但是为了获得更快的速度,可以冗余字段或创建总结表。2、当MyISAM使用动态表格式时,偶尔使用OPTIMIZETABLE可以避免碎片。可以写一个脚本程序定时执行优化。3、在Web服务器中,图象和其它二进制资源应该作为文件存储。也就是仅在数据库中存储的文件的引用地址而不是文件本身。大多数Web服务器在缓存文件方面比数据库内容要好得多,因此使用文件一般要快得多。4、对经常访问的不重要数据(如session)使用内存表。5、在MYSQL的主写从读的架构中,一般将主库的表类型使用innoDB类型,而从库则 阅读全文

posted @ 2012-03-30 19:47 zhexiao 阅读(170) 评论(0) 推荐(0) 编辑

PHP Document 代码注释规范

摘要: HPDocumentor是一个用PHP写的工具,对于有规范注释的php程序,它能够快速生成具有相互参照,索引等功能的API文档。老的版本是 phpdoc。1. 什么是phpDocumentor ?PHPDocumentor是一个用PHP写的工具,对于有规范注释的php程序,它能够快速生成具有相互参照,索引等功能的API文档。老的版本是 phpdoc,从1.3.0开始,更名为phpDocumentor,新的版本加上了对php5语法的支持,同时,可以通过在客户端浏览器上操作生成文档,文档可以转换为PDF,HTML,CHM几种形式,非常的方便。PHPDocumentor工作时,会扫描指定目录下面的p 阅读全文

posted @ 2012-03-30 19:47 zhexiao 阅读(433) 评论(0) 推荐(0) 编辑

Ubuntu下Lamp服务器的性能优化

摘要: 安装Zend Optimizer要求PHP版本为5.2,不支持Ubuntu10.04的PHP5.3,请参照PHP5.2。下载Zend Optimizer。直接贴下载地址,参考版本号改(这是32位的),不然主页要注册才能下http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gztar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gzcd ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_ 阅读全文

posted @ 2012-03-30 19:46 zhexiao 阅读(252) 评论(0) 推荐(0) 编辑

Ubuntu中Lamp的一些配置

摘要: 配置Apache文件路径1>apache 的配置文件路径 /etc/apache2/apache2.conf2>apache 网站字符编码配置路径 /etc/apache2/conf.d/charset3>php.ini 路径 /etc/php5/apache2/php.ini4>mysql配置文件 路径 /etc/mysql/my.cnf一般不要使用,尤其是新手5>phpmyadmin配置文件路径 /etc/phpmyadmin/apache.conf6>默认网站根目录 /var/www1重启apachesudo /etc/init.d/apache2 r 阅读全文

posted @ 2012-03-30 19:46 zhexiao 阅读(188) 评论(0) 推荐(0) 编辑

开启Zend Studio中的debug调试方法

摘要: 首先进入网站http://downloads.zend.com/pdt/server-debugger/下载相对应平台的Debugger。复制对应版本的Dll文件到"F:\AppServ\php5\ext\"假设我的php放置在F盘。则在php.ini中添加如下代码:(提示:如果有ZendExtensionManager和ZendOptimizer都必须关掉)[zend_debugger]zend_extension_ts="F:\AppServ\php5\ext\ZendDebugger.dll"zend_debugger.allow_hosts=12 阅读全文

posted @ 2012-03-30 19:46 zhexiao 阅读(320) 评论(0) 推荐(0) 编辑

php中进制转换函数

摘要: 一,十进制(decimal system)转换函数说明1,十进制转二进制 decbin() 函数,如下实例echo decbin(12); //输出 1100echo decbin(26);(PHP 3, PHP 4, PHP 5)decbin -- 十进制转换为二进制说明string decbin ( int number )返回一字符串,包含有给定 number 参数的二进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 32 个 1 的字符串。2,十进制转八进制 decoct() 函数echo decoct(15); //输出 17echo decoct(264); 阅读全文

posted @ 2012-03-30 19:44 zhexiao 阅读(320) 评论(0) 推荐(0) 编辑

Linux(ubuntu)用户权限管理--赋予用户sudo权限

摘要: 默认新建的用户不在sudo组,需要编辑/etc/sudoers文件将用户加入,该文件只能使用visudo命令,首先需要切换到rootsu - (注意有- ,这和su是不同的,在用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前用乎的环境变量,用"su -"命令将环境变量也一起带过去,就象和root登录一样)然后visudo这个和vi的用法一样,由于可能会有人不太熟悉vi,所以简要说一下步骤移动光标,到最后一行,按a,进入append模式,输入your_user_name ALL=(ALL) ALL然后按Esc,再输入:w保 阅读全文

posted @ 2012-03-30 19:44 zhexiao 阅读(530) 评论(0) 推荐(0) 编辑

Liunx下修改MySQL字符集

摘要: Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / -iname '*.cnf' -print/usr/share/mysql/my-innodb-heavy-4G.cnf/usr/share/mysql/my-large.cnf/usr/share/mysql/my-small.cnf/usr/share/mysql/my-medium.cnf/usr/share/mysql/my-huge.cnf/usr/share/texmf/web2c/texmf.cnf/usr/share/texmf/web2c/mktex.cnf/usr/share 阅读全文

posted @ 2012-03-30 19:43 zhexiao 阅读(174) 评论(0) 推荐(0) 编辑

导航