关于MySQL的慢日志分析工具
今天我们看看关于MySQL慢日志的阅读。
我们知道,如果我们的语句不够优化,那么首先MySQL的慢日志是进一步优化的离线证据,虽然里面有好
多“伪慢语句”!
先不说怎么优化,如果你的日志有一条语句赌住了,那么会有不计其数的慢语句填充到MySQL的满日志里面。那么首先提炼出这些语
句就非常头疼。
今天主要介绍两种工具:
1,mysqldumpslow。(咱们
MySQL自带的简单而又实用的工具)
我们先来看下mysqldumpslow的结果。
[root@localhost ~]# mysqldumpslow -r
localhost-slow.log
Reading
mysql slow query log from localhost-slow.log
Count: 2 Time=7.00s (14s) Lock=0.00s (0s) Rows=0.0 (0),
root[root]@localhost
select * from t_page_sample order by id desc limit N,N
Count: 1 Time=11.00s (11s) Lock=0.00s (0s) Rows=1.0 (1),
root[root]@localhost
select count(*) from t_page_sample
Count: 1 Time=1418.00s (1418s) Lock=0.00s (0s) Rows=0.0 (0),
root[root]@localhost
insert ignore into t_page_sample select ceil(rand()*N),
ceil(rand()*N), date_sub(now(),interval floor(rand()*N) day), now() from
t_page_sample
比如要查找排序的慢语句:
[root@localhost
~]# mysqldumpslow -r -g "order by " localhost-slow.log
Reading mysql slow query log from
localhost-slow.log
Count: 2
Time=7.00s (14s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost
select * from t_page_sample order by id desc limit N,N
自
带的mysqldumpslow简单实用,作为我个人的首选。关于具体的参数含义,可以参见它自身的HELP。
2,mk-query-digest。(网
上著名的开源脚本家族Maatkit中一员)
手册地址:http://www.maatkit.org/doc/mk-
query-digest.html
下载方法:wget
http://www.maatkit.org/get/mk-query-digest
完了赋给它可执行权限就OK。
mk-query-digest
功能太多,我今天只是试了下它对MySQL慢日志的分析功能。
以下是我觉得比较实用的功能。
1)分析慢日志并且把找出来的语句写到规定的
表里。
[root@localhost ~]#
./mk-query-digest --limit 2 --select
Query_time,Lock_time,Rows_sent,Rows_examined,ts --create-review-table
相关文档:
INET_ATON(expr)
给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数。地址可以是4或8比特地址。
mysql> SELECT INET_ATON('209.207.224.40');
+-----------------------------+
| INET_ATON('209.207.224.40') |
+-----------------------------+
| 3520061480 |
+-------------------- ......
apache的静态/动态编译在apache+php+mysql的应用
我想大家有不少都成功实现apache+php+mysql,网上的文章也有不少,但我发现不少文章都是抄来抄去,并且
没有说明白编译的方式,有的索性apache1.3的编译方法原封不动的搬过来套在apache2.0,显然误导一些菜鸟 !
我今天就以apache+mysql+php说一下静态编译和DSO动态编 ......
准备
ls /usr/local/src // 显示文件列表
ls | wc -l // 查看当前文件目录下文件的个数
gcc -v // 查看编译工具是否存在
rpm -qa|grep -i xxxx // 查看系统中是否已经安装了某软件的相关软件包
rpm -e --nodeps xxxx // 卸载软 ......
遇到一个问题是在MySQL命令行插入中文数据或者查询中文数据时出现乱码,或者显示不对。
在命令行输入:show variables like ‘character_set_%’;
查看当前配置的编码;
在命令行输入 :set names utf8;
则等同于
set character_set_client=utf8;
set character_set_results ......
Mysql方式:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MysqlDB {
private String strClass = "com.mysql.jdbc.Driver";
private String strDriver = "jdbc:mysql://localhost: ......