五款常用mysql slow log分析工具的比较

mysql slow log 是用来记录执行时间较长(超过long_query_time秒)的sql的一种日志工具.

启用 slow log
有两种启用方式:
1, 在my.cnf 里 通过 log-slow-queries[=file_name]
2, 在mysqld进程启动时,指定–log-slow-queries[=file_name]选项

需要比较的五款常用工具

mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter

mysqldumpslow, mysql官方提供的慢查询日志分析工具. 输出图表如下:
mysqldumpslow工具截图
Read more…

2008/09/15 | Posted in Others

mysqlreport中的innodb部分详解

最近在玩mysqlreport, 在网上找到一篇台湾人汉化的文档.但发现没有 innodb 部分的说明.
于是,参考官方的文档, 补充了一下innodb部分. 如下:

下面的图表只输出innodb部分, 要查看全部信息, 点击下面的url
官方: http://hackmysql.com/mysqlreportguide
一篇台湾作者汉化的文档: http://forum.slime.com.tw/thread208416.html

__ InnoDB Buffer Pool __________________________________________________
Usage 7.97M of 8.00M %Used: 99.61
Read hit 100.00%

Pages
Free 2 %Total: 0.39
Data 499 97.46 %Drty: 0.00
Misc 11 2.15
Latched 0 0.00

Reads 101.06M 8.5/s
From file 373 0.0/s 0.00
Ahead Rnd 19 0.0/s
Ahead Sql 13 0.0/s

Writes 860.88k 0.1/s
Flushes 254.62k 0.0/s
Wait Free 0 0/s

__ InnoDB Lock _________________________________________________________
Waits 424 0.0/s
Current 0
Time acquiring
Total 254266 ms
Average 599 ms
Max 39559 ms

__ InnoDB Data, Pages, Rows ____________________________________________
Data
Reads 502 0.0/s
Writes 344.09k 0.0/s
fsync 158.03k 0.0/s
Pending
Reads 0
Writes 0
fsync 0

Pages
Created 699 0.0/s
Read 523 0.0/s
Written 254.62k 0.0/s

Rows
Deleted 4.59k 0.0/s
Inserted 74.16k 0.0/s
Read 94.67M 8.0/s
Updated 40.61k 0.0/s

Read more…

2008/09/09 | Posted in Others

监控mysql的服务器状态

监控mysql状态,有两种方式:
1, 进入mysql服务器, 执行 show status 命令查看mysql当前运行的状态.
2, 使用 mysqlreport 工具, 更条理化地查看mysql状态, 基于 show status.

第一种方式,是mysql原生支持的.使用起来比较方便.
缺点是, 数据零散, 没有百分比和统计, 难理解, 可读性差.

第二种方式, 相对来说就好很多.本身就是个报表, 统计数据看起来比较舒服.
这里也着重讨论mysqlreport.

一篇介绍 mysqlreport 工具使用相关的中文教程.
http://www.phpv.net/html/1566.html

mysqlreport实用功能:
1, 通过 show status 格式的文件, 直接导出报表.
mysqlreport支持导入历史的 show status 数据文件来生成报表, 但前提是, 之前你已经用将 show status 打印出来的数据导出到文件里.
mysqlreport –user root –password –infile filename
Read more…

2008/09/07 | Posted in Others

小议mysql变量及其优化

mysql里的变量分系统变量和用户变量.
系统变量
其中系统变量,又分全局(global)和会话(session)两种.

全局系统变量,主要影响整个mysql实例的全局设置.
大部分变量都是作为mysql的服务器调节参数存在.新增或修改这类变量, 会影响mysql的运行方式.
比如: auto_increment_increment 代表序列的自增值, 默认为1

另外, mysql中,只有一部分变量是支持运行时动态修改的.
变量修改的作用范围,是那些重新创建连接到mysql服务器的客户端连接.

如果你的连接是由应用通过连接池来维护的,并且,是长连接的,那么,此时在服务器运行过程中,动态地修改全局变量对你是没有什么影响的.

通过全局变量, 我们可以想到一些应用场景:
Read more…

2008/09/06 | Posted in Others

java 安全沙箱模型详解

起到第一道安全保障作用的”双亲委派类加载模型”

双亲委派方式的类加载,指的是优先从顶层启动类加载器开始,自顶向下的方式加载类的模型(参见第一条类装载器体系结构)。

这种模型的好处是,底层的类装载器装载的类无法与顶层类装载器装载的类相互调用。
哪怕是同包下的类,只要他们不属于同一类装载器,都是相互隔绝的。这对一些有安全隐患的类起到了安全隔离的作用。使它不能冒充系统类来破坏程序正常运作。

此外,不同的类装载器,也有自己的类装载范围。比如启动类装载器,它只会装在jdk/lib目录下的包/类,因此,系统级的类是相对安全的。

java类加载模型
Read more…

2008/08/07 | Posted in JVM

gentoo下定制apache-启用模块和配置结构

这两天由于要搭建个小型资讯网站,需要用到apache。抽空在gentoo上定制了一把apache。

所谓的gentoo版apache,其实源码还是跟官方版本一致的。
不同之处在于模块的安装,卸载已经完全gentoo化。
只需要在USE标记里,添加,删除相应的标签,即可。

编译时用到的模块介绍

apache的编译安装就不多说了,这里要提一下的是,安装apache模块的USE标记并不是跟着apache
走的
,而且单独配置的一套变量。

以下是我需要用到的一些模块(黄色的变量即使编译时需要用到的模块列表),应该算是非常精简了:
gentoo编译apache截图
Read more…

2008/06/29 | Posted in Linux & Gentoo

gentoo下配置mysql字符集

在mysql数据库中,使用的是latin字符集,所 以无法正常的支持中文字符,中文在数据库中显示为乱码“?”号。为了让mysql可以正常使用 中文,尤其是当使用jsp连接mysql的时候,我们需要使用gbk的字符集,因此我们要对mysql进行以下设置,以便其有效的支持中文:

1.修改my.cnf文件
my.cnf文件是mysql的配置文件,我们可以从mysql的安装目录根据其自带模板来
建立

#cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf
#vi /etc/my.cnf

在此文件中相应位置加入

default-character-set = gbk
########################
[client]
default-character-set = gbk
[mysqld]
default-character-set = gbk
#########################

修改结束以后,保存,然后使用客户端登录
Read more…

2008/06/23 | Posted in Others