MySQL性能优化的最佳20+条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过 多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。 1. 为查询缓存优化你的查询 大多数的MySQL服务器都......
九个PHP很有用的功能
下面是九个PHP中很有用的功能,不知道你用过了吗? 1. 函数的任意数目的参数 你可能知道PHP允许你定义一个默认参数的函数。但你可能并不知道PHP还允许你定义一个完全任意的参数的函数 下面是一个示例向你展示了默认参数的函数: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 // 两个默认参数的函数 function foo($arg1 = '', $arg2 = '') {     echo "arg1: $arg1\n";     echo "arg2: $arg2\n"; } foo('hello','world'); /* 输......
解决CentOS非root用户配置SSH无密码登录的问题
        最近在搭建Hadoop环境需要设置无密码登陆,所谓无密码登陆其实是指通过证书认证的方式登陆,使用一种被称为"公私钥"认证的方式来进行ssh登录。        " 公私钥"认证方式简单的解释:首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)。然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥.在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。......
Centos上的VPN连不上一些网站的解决办法
  最近在忙海外的事情,所以在Centos上架设了一个VPN,在使用的过程中发现,一些网站可以很顺便地访问,一些网站访问不了,特别是基于https协议的,如台湾奇摩的登录页面,后来经过一番疯狂的GOOGLE,发现了原来是MTU设置的问题,把Centos上的ppp0连接的MTU设为1400就解决了。 命令: /sbin/ifconfig ppp0 mtu 1400 永久修改ppp0的mtu办法: vi /etc/ppp/ip-up 在倒数第二行也就是exit 0前面加上/sbin/ifconfig $1 mtu 1400 重连VPN,访问正......
NoSQL的几个解决方案比较
如果这个时候你仍就为寻找一个可行的NoSQL解决方案而苦恼,读完这篇后你就知道该做什么了。 当我以前参与Perfect Market的内容处理平台时,我拼命地尝试寻找一个极端快速(从延时和处理时间上)和可扩展的NoSQL数据库方案,去支持简单地键/值查询。 在开始前我预定义了需求: 快速数据插入(Fast data insertion)。有些数据集可能包含上亿的行(KV键值对),虽然每行数据很小,但如果数据插入很慢,那将这个数据集传入数据库将需要花几天时间......
Hash Collision DoS 问题的解决方法
最近,除了国内明文密码的安全事件,还有一个事是比较大的,那就是 Hash Collision DoS (Hash碰撞的拒绝式服务攻击),有恶意的人会通过这个安全弱点会让你的服务器运行巨慢无比。这个安全弱点利用了各语言的Hash算法的“非随机性”可以制造出N多的value不一样,但是key一样数据,然后让你的Hash表成为一张单向链表,而导致你的整个网站或是程序的运行性能以级数下降(可以很轻松的让你的CPU升到100%)。目前,这个问题出现于Java, JRuby, PHP, Py......
解决织梦dedecms5.7添加生成文章时提示“模板文件不存在,无法解析文档”的最好方法
今天在使用织梦5.7做一个小网站,保存文章的时候却提示了“模板文件不存在,无法解析文档!”,我找了一下,确认模板文件是存在的,空间是Linux的,而且文件也有可读的权限。网上搜索了一大堆,都说是删除文章啦,重新保存栏目,更新缓存等等,这些都没效果的。 我也尝试过删除全部的文章数据,但还是提示模板文件不存在,这奇怪了。 于是直接看系统代码,发现include/arc.archives.class.php里面有一行这样的代码 $this->gettempletfile();这个......
确保PHP安全 不能违反的四条安全规则
规则 1:绝不要信任外部数据或输入 关于 Web 应用程序安全性,必须认识到的第一件事是不应该信任外部数据。外部数据(outside data) 包括不是由程序员在 PHP 代码中直接输入的任何数据。在采取措施确保安全之前,来自任何其他来源(比如 GET 变量、表单 POST、数据库、配置文件、会话变量或 cookie)的任何数据都是不可信任的。 例如,下面的数据元素可以被认为是安全的,因为它们是在 PHP 中设置的。 php程序员站 清单 1. 安全无暇的代码 php......
使用php的fseek来读取大文件内容
由于 file函数是一次性将所有内容读入内存,而php为了防止一些写的比较糟糕的程序占用太多的内存而导致系统内存不足,使服务器出现宕机,所以默认情况下限制只能最大使用内存16M,这是通过php.ini里的 memory_limit = 16M来进行设置,这个值如果设置-1,则内存使用量不受限制. 下面是一段用file来取出这具文件最后一行的代码.   Php代码   ini_set('memory_limit','-1');    $file = 'access.log';    $data = file($file);    $line = $......
PHP数据类型隐性转换的陷阱
之前写过一篇《PHP的动态特性》总结了部分PHP的特性,因为动态语言的特性,我们使用PHP时倍感便利,但是便利的同时会引来一些陷阱,不得不防。 我这里说的是php5+上跑的,php4的请飘过。 先把错误报告打开,以防看不到错误信息 <?php error_reporting(E_ALL); ini_set('display_errors', true); ?> 根据php manual 中 http://www.php.net/manual/zh/language.operators.comparison.php “Comparison Operators” 一章的说明可知,number 和st......