月度归档:2016年06月

PHP过滤掉非utf8字符

开发生成XML的时候,发现里面有一些特殊字符,比如  ,在网上找到好多的过滤utf8的方法,都没有成功。只能靠自己来实现 PHP过滤非UTF8字符。

一、思想

1、先将utf8的字符替换为英文逗号。

2、通过英文逗号分隔为数组。

3、过滤出来特殊字符。

4、str_replace 查找替换特殊字符。

继续阅读

使用XHProf进行线上PHP性能追踪及分析

今天介绍下大家并不陌生的XHProf。它是Facebook开发的用来分析线上PHP性能的工具。相比较于Xdebug,占用内存和性能更低。

1.XHProf安装


# wget http://pecl.php.net/get/xhprof-0.9.4.tgz
# tar zxvf xhprof-0.9.4.tgz
# cd xhprof-0.9.4/extension/
# phpize //结合自己的环境确认phpize的目录
# ./configure --with-php-config=/usr/local/php/bin/php-config //结合自己的环境确认phpize的目录
# make
# make install

安装完成后,在php.ini中添加 extension=xhprof.so。

重启下web应用服务器。

继续阅读

使用Anemometer基于pt-query-digest将MySQL慢查询日志可视化

MySQL慢查询日志分析工具不少,比如:

1、mysqldumpslow,MySQL官方提供。

2、mysqlsla,hackmysql.com推出的一款日志分析工具。功能非常强大,数据报表,非常有利于慢查询分析,包括执行频率、数据量和查询消耗等。

虽然都可以满足日常的使用,但是不够直观,并且无法方便开发人员进一步完善SQL语句。

pt-query-digest

是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。

Anemometer

将MySQL慢查询log可视化。

MySQL开启慢查询日志

不同的版本,MySQL开启慢查询日志方式有点不同。可以通过


#show variables like '%slow%'

命令查看都需要配置哪些参数。以5.6版本为例,修改my.cnf的数据库配置文件


slow_query_log = ON
slow_launch_time = 2
slow_query_log_file = /自定义日志目录/mysql-slow.log
log_queries_not_using_indexes = 1 //没有使用到索引的查询也将被记录在日志中

继续阅读