MyPDO是站长编写的一个基于PDO并支持事务处理的PHP-MySQL类,原名为“MySQL”,从3.0开始正式更名为“MyPDO”,分别提供utf-8和gbk两种编码版本的下载。
4.0开始,MyPDO已改为静态类,效率更高,欢迎大家使用并提出宝贵意见和建议。
专注WEB编程开发技术
MyPDO是站长编写的一个基于PDO并支持事务处理的PHP-MySQL类,原名为“MySQL”,从3.0开始正式更名为“MyPDO”,分别提供utf-8和gbk两种编码版本的下载。
4.0开始,MyPDO已改为静态类,效率更高,欢迎大家使用并提出宝贵意见和建议。
优化目标
1、减少 IO 次数
IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段。
2、降低CPU计算
最近一段时间,我刚刚进入一家新公司,并接手了这里的一个站点,由于这个站点的架构设计不太合理,导致MySQL的压力始终很大,经常出现超时的Locked进程,于是编写了一段Linux的Shell脚本来定时kill掉这些进程。
脚本如下:
#!/bin/bash mysql_pwd="xxxxxx" #mysql的root密码 mysql_exec="/usr/local/mysql/bin/mysql" tmp_dir="/tmp" file_sh="$tmp_dir/mysql_kill_locked.sh" file_tmp="$tmp_dir/mysql_kill_locked.tmp" file_log="$tmp_dir/mysql_kill_locked.log" #日志 $mysql_exec -uroot -p$mysql_pwd -e "show processlist" | grep -i "Locked" > $file_tmp cat $file_tmp >> $file_log for line in `cat $file_tmp | awk '{print $1}'` do echo "$mysql_exec -uroot -p$mysql_pwd -e \"kill $line\"" >> $file_sh done chmod +x $file_sh sh $file_sh #执行临时脚本 > $file_sh #清空临时脚本
最后,将这段脚本加入到crontab,定时执行即可。
阳光部落原创,更多内容请访问 http://www.sunbloger.com/
一、建议使用一个索引来满足Order By子句。
在条件允许的情况下,笔者建议最好使用一个索引来满足 Order By子句。如此的话,就可以避免额外的排序工作。这里笔者需要强调的一点是及时Order By子句不确切匹配索引,但是只要Where子句中所有未使用的索引部分和所有额外的 Order by子句中的列为常数,此时就可以使用索引。具体的来说,推荐如下的查询语句。
今天我们来了解一个百万级PHP站点的网站架构:Poppen.de。Poppen.de是德国的一个社交网站,相对Facebook、Flickr来说是一个很小的网站,但它有一个很好的架构,融合了很多技术,如 Nginx、MySql、CouchDB、Erlang、Memcached、RabbitMQ、PHP、Graphite、Red5以及Tsung。
这次修改主要是增加了2个新function:
1. getTableEngine(),用于获取表引擎;
2. Replace(),以覆盖方式插入数据。
分享源码,仅供技术交流,下载请移步至:http://www.sunbloger.com/download/
源码如下:
如有疏漏或不当之处欢迎指正,我的E-Mail是jasonwei06@hotmail.com,谢谢!
//——————————安装环境——————————
//Linux版本:Red Hat Enterprise Linux 5 Update4
//Apache版本:Apache 2.0.63
//MySQL版本:MySQL 5.1.43
//PHP版本:PHP 5.2.13
方法1
//复制mysql.server到/etc/rc.d/init.d/下
#cp /mysql-5.1.43/support-files/mysql.server /etc/rc.d/init.d/mysqld
//为mysqld添加运行权限
#chmod +x /etc/rc.d/init.d/mysqld
//将mysqld添加到启动