哪一天 哪一天 我有吃有穿有住有钱 不再流浪 流浪

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

转自: http://www.javaeye.com/topic/242516

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官方提供的慢查询日志分析工具. 输出图表如下:
主要功能是, 统计不同慢sql的
出现次数(Count),
执行最长时间(Time),
累计总耗费时间(Time),
等待锁的时间(Lock),
发送给客户端的行总数(Rows),
扫描的行总数(Rows),
用户以及sql语句本身(抽象了一下格式, 比如 limit 1, 20 用 limit N,N 表示).

mysqlsla, hackmysql.com推出的一款日志分析工具(该网站还维护了 mysqlreport, mysqlidxchk 等比较实用的mysql工具)
整体来说, 功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等.
格式说明如下:
总查询次数 (queries total), 去重后的sql数量 (unique)
输出报表的内容排序(sorted by)
最重大的慢sql统计信息, 包括 平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数.
Count, sql的执行次数及占总的slow log数量的百分比.
Time, 执行时间, 包括总时间, 平均时间, 最小, 最大时间, 时间占到总慢sql时间的百分比.
95% of Time, 去除最快和最慢的sql, 覆盖率占95%的sql的执行时间.
Lock Time, 等待锁的时间.
95% of Lock , 95%的慢sql等待锁时间.
Rows sent, 结果行统计数量, 包括平均, 最小, 最大数量.
Rows examined, 扫描的行数量.
Database, 属于哪个数据库
Users, 哪个用户,IP, 占到所有用户执行的sql百分比
Query abstract, 抽象后的sql语句
Query sample, sql语句
除了以上的输出, 官方还提供了很多定制化参数, 是一款不可多得的好工具.
mysql-explain-slow-log, 德国人写的一个perl脚本.
http://www.willamowius.de/mysql-tools.html
功能上有点瑕疵, 不仅把所有的 slow log 打印到屏幕上, 而且统计也只有数量而已. 不推荐使用.
mysql-log-filter, google code上找到的一个分析工具.提供了 python 和 php 两种可执行的脚本.
http://code.google.com/p/mysql-log-filter/
功能上比官方的mysqldumpslow, 多了查询时间的统计信息(平均,最大, 累计), 其他功能都与 mysqldumpslow类似.
特色功能除了统计信息外, 还针对输出内容做了排版和格式化, 保证整体输出的简洁. 喜欢简洁报表的朋友, 推荐使用一下.
myprofi, 纯php写的一个开源分析工具.项目在 sourceforge 上.
http://myprofi.sourceforge.net/

功能上, 列出了总的慢查询次数和类型, 去重后的sql语句, 执行次数及其占总的slow log数量的百分比.
从整体输出样式来看, 比mysql-log-filter还要简洁. 省去了很多不必要的内容. 对于只想看sql语句及执行次数的用户来说, 比较推荐.

总结

工具/功能 一般统计信息 高级统计信息 脚本 优势
mysqldumpslow 支持 不支持 perl mysql官方自带
mysqlsla 支持 支持 perl 功能强大,数据报表齐全,定制化能力强.
mysql-explain-slow-log 支持 不支持 perl
mysql-log-filter 支持 部分支持 python or php 不失功能的前提下,保持输出简洁
myprofi 支持 不支持 php 非常精简
2008-10-14默认分类

5条评论
12 views

blog访问量突破3万

虽然不多,但值得纪念一下.

2008-10-09生活记事

2条评论
3 views

奶奶,一路走好.

奶奶,一路走好.

史上最牛的政府网站—-鸭子港乡人民政府欢迎您

鸭子港乡人民政府欢迎您

这位大哥是能想到的效果全用上了

超级雷人的网站地址:

http://www.hnyazigang.gov.cn/gb/index.htm

(转)Wordpress数据库中的表、字段、类型及说明

Wordpress数据库中的表、字段、类型及说明
wp_categories: 用于保存分类相关信息的表。包括了5个字段,分别是:

     * cat_ID – 每个分类唯一的ID号,为一个bigint(20)值,且带有附加属性auto_increment。
     * cat_name – 某个分类的名称,为一个varchar(55)值。
     * category_nicename – 指定给分类的一个便于记住的名字,也就是所谓的slug,这是一个varchar(200)值。
     * category_description – 某个分类的详细说明,longtext型值。
     * category_parent – 分类的上级分类,为一个int(4)值,对应是的当前表中的cat_ID,即wp_categories.cat_ID。无上级分类时,这个值为0。

wp_comments: 用于保存评论信息的表。包括了15个字段,分别为:

     * comment_ID – 每个评论的唯一ID号,是一个bigint(20)值。带有附加属性auto_increment。
     * comment_post_ID – 每个评论对应的文章的ID号,int(11)值,等同于wp_posts.ID。
     * comment_author – 每个评论的评论者名称,tinytext值。
     * comment_author_email – 每个评论的评论者电邮地址,varchar(100)值。
     * comment_author_url – 每个评论的评论者网址,varchar(200)值。
     * comment_author_IP – 每个评论的评论者的IP地址,varchar(100)值。
     * comment_date – 每个评论发表的时间,datetime值(是加上时区偏移量后的值)。
     * comment_date_gmt – 每个评论发表的时间,datetime值(是标准的格林尼治时间)。
     * comment_content – 每个评论的具体内容,text值。
     * comment_karma – 不详,int(11)值,默认为0。
     * comment_approved – 每个评论的当前状态,为一个枚举值enum(’0′,’1′,’spam’),0为等待审核,1为允许发布,spam为垃圾评论。默认值为1。
     * comment_agent – 每个评论的评论者的客户端信息,varchar(255)值,主要包括其浏览器和操作系统的类型、版本等资料。
     * comment_type – 不详,varchar(20)值。
     * comment_parent – 某一评论的上级评论,int(11)值,对应wp_comment.ID,默认为0,即无上级评论。
     * user_id – 某一评论对应的用户ID,只有当用户注册后才会生成,int(11)值,对应wp_users.ID。未注册的用户,即外部评论者,这个ID的值为0。

wp_linkcategories: 用于保存在WP后台中添加的链接的相关信息的表。包括13个字段:

     * cat_id – 每个链接分类的唯一ID,bigint(20)值,为一个自增量auto_increment。
     * cat_name – 每个链接分类的名字,tinytext值。
     * auto_toggle -这个字段所包含的是一个比较特别的属性。如果为Y,则当该分类中加入了新链接时,其它的链接会变为不可见。它是一个枚举型的值enum(’Y’,’N’),默认为N。
     * show_images – 该字段也是枚举值enum(’Y’,’N’),默认为Y。用户指定是否允许在该链接分类显示图片链接。
     * show_description – 该字段指定相应的链接分类下的链接,是否再专门[换行]显示它们的说明,这是一个枚举型值enum(’Y’,’N’),默认为N,即不显示说明(但会通过title属性中显示说明)。
     * show_rating – 显示该分类下链接的等级。它也是一个枚举值enum(’Y’,’N’),默认为Y。此时,你可以用链接等级的方式来对该链接分类下的链接进行排序。
     * show_updated – 指定该链接分类有更新是,是否进行显示,枚举值enum(’Y’,’N’),默认为Y。
     * sort_order – 指定该链接分类中链接的排序依据,varchar(64)值。一般用链接的名字(name,即wp_links.link_name)或ID(id,即wp_links.link_id)。
     * sort_desc – 指定链接分类的排序方式,枚举值enum(’Y’,’N’),默认为N,即用降序。
     * text_before_link – 该链接分类下每个链接的前置html文本,varchar(128)值,默认是’列表开始标签’。
     * text_after_link – 该链接分类下每个链接的中,链接与说明文字(wp_links.link_description)之间的html文本,varchar(128)值,默认是’换行标签’。
     * text_after_all – 该链接分类下每个链接的后置html文本,varchar(128)值,默认是’列表结束标签’。
     * list_limit – 用于规定某一链接分类中显示的(可设定的?)链接的个数,int(11)值,默认为-1,即对链接分类下链接的个数无限制。

wp_links :用于保存用户输入到Wordpress中的链接(通过Link Manager)的表。共14个字段:

     * link_id – 每个链接的唯一ID号,bigint(20)值,附加属性为auto_increment。
     * link_url – 每个链接的URL地址,varchar(255)值,形式为http://开头的地址。
     * link_name – 单个链接的名字,varchar(255)值。
     * link_image – 链接可以被定义为使用图片链接,这个字段用于保存该图片的地址,为varchar(255)值。
     * link_target – 链接打开的方式,有三种,_blank为以新窗口打开,_top为就在本窗口中打开并在最上一级,none为不选择,会在本窗口中打开。这个字段是varchar(25)值。
     * link_category – 某个链接对应的链接分类,为int(11)值。相当于wp_linkcategories.cat_id。
     * link_description – 链接的说明文字。用户可以选择显示在链接下方还是显示在title属性中。varchar(255)值。
     * link_visible – 该链接是否可以,枚举enum(’Y’,’N’)值,默认为Y,即可见。
     * link_owner – 某个链接的创建人,为一int(11)值,默认是1。(应该对应的就是wp_users.ID)
     * link_rating – 链接的等级,int(11)值。默认为0。
     * link_updated – 链接被定义、修改的时间,datetime值。
     * link_rel – 链接与定义者的关系,由XFN Creator设置,varchar(255)值。
     * link_notes – 链接的详细说明,mediumtext值。
     * link_rss – 该链接的RSS地址,varchar(255)值。

wp_options: 用于保存Wordpress相关设置、参数的表,共11个字段。最重要是的option_value字段,里面包括了大量的重要信息。

     * option_id – 选项的ID,bigint(20)值,附加auto_increment属性。
     * blog_id – 不详。或许用在单在用户的WP版本上并不重要吧,或许是针对不同用户的Blog来设置的一个值。int(11)值,默认为0,即当前blog。
     * option_name – 选项名称,varchar(64)值。
     * option_can_override – 该选项是否可被重写、更新,枚举enum(’Y’,’N’)值,默认为Y,即可被重写、更新。
     * option_type – 选项的类型,作用不详,int(11)值,默认为1。
     * option_value – 选项的值,longtext值,这个字段的内容比较重要。Wordpress初始化时就会设定好约70个默认的值,这里暂不介绍。
     * option_width – 选项的宽(?),作用不详。int(11)值,默认为20。
     * option_height – 选项的高(?),作用不详。int(11)值,默认为8。
     * option_description – 针对某个选项的说明,tinytext值。
     * option_admin_level – 设定某个选项可被操纵的用户等级(详情见我的相关文章),int(11)值,默认为1。
     * autoload – 选项是否每次都被自动加载,枚举enum(’yes’,’no’)值,默认为yes。

wp_post2cat: 用于保存文章(posts)与分类(categories)之间的关系的表,只有三个字段:

     * rel_id – 关联ID,bigint(20)值,是个有auto_increment属性的自增量。
     * post_id – 文章的ID,bigint(20)值,相当于wp_posts.ID。
     * category_id – 分类的ID,也是bigint(20)值,相当于wp_categories.ID。

文章与分类的关系的形成是这样的:rel_id是一个不断增加的自增量,它用于识别每不同的post。post_id可以重复(当它对应多个分类时),因 为它可被rel_id识别,所以不会出现混乱。每个post_id可对应多个category_id时,一个rel_id + post_id组合,可以识别某一个分类,因此每个文章的分类可以是不同的。通过这张表,可以非常快速、高效地找出某篇文章(post)对应了哪些分类 (category),反之亦然。

wp_postmeta: 用于保存文章的元信息(meta)的表,四个字段:

     * meta_id – 元信息ID,bigint(20)值,附加属性为auto_increment。
     * post_id – 文章ID,bigint(20)值,相当于wp_posts.ID。
     * meta_key – 元信息的关键字,varchar(255)值。
     * meta_value – 元信息的值,text值。

这些内容主要是在文章及页面编辑页(Write Post, Write Page)的”Add a new custom field to this post(page):”下进行设定的。meta_key就对应名为”key”的下拉列表中的项,而值由用户自己填上(某些时候,wp也会自动加入,如文 章中有的音频媒体)。

我用phpMyAdmin查看了一下,在我的blog中,主要使用这张表的有插件(如Adhesive、Technorati Tagging)、_wp_page_template、enclosure(内含资源)。

wp_posts: 用于保存你所有的文章(posts)的相关信息的表,非常的重要。一般来讲,它存储的数据是最多的。一共包括了21个字段。

     * ID – 每篇文章的唯一ID,bigint(20)值,附加属性auto_increment。
     * post_author – 每篇文章的作者的编号,int(4)值,应该对应的是wp_users.ID。
     * post_date – 每篇文章发表的时间,datetime值。它是GMT时间加上时区偏移量的结果。
     * post_date_gmt – 每篇文章发表时的GMT(格林威治)时间,datetime值。
     * post_content – 每篇文章的具体内容,longtext值。你在后台文章编辑页面中写入的所有内容都放在这里。
     * post_title – 文章的标题,text值。
     * post_category – 文章所属分类,int(4)值。
     * post_excerpt – 文章摘要,text值。
     * post_status – 文章当前的状态,枚举enum(’publish’,’draft’,’private’,’static’,’object’)值,publish为已 发表,draft为草稿,private为私人内容(不会被公开) ,static(不详),object(不详)。默认为publish。
     * comment_status – 评论设置的状态,也是枚举enum(’open’,’closed’,’registered_only’)值,open为允许评论,closed为不允 许评论,registered_only为只有注册用户方可评论。默认为open,即人人都可以评论。
     * ping_status – ping状态,枚举enum(’open’,’closed’)值,open指打开pingback功能,closed为关闭。默认值是open。
     * post_password – 文章密码,varchar(20)值。文章编辑才可为文章设定一个密码,凭这个密码才能对文章进行重新强加或修改。
     * post_name – 文章名,varchar(200)值。这通常是用在生成permalink时,标识某篇文章的一段文本或数字,也即post slug。
     * to_ping – 强制该文章去ping某个URI。text值。
     * pinged – 该文章被pingback的历史记录,text值,为一个个的URI。
     * post_modified – 文章最后修改的时间,datetime值,它是GMT时间加上时区偏移量的结果。
     * post_modified_gmt – 文章最后修改的GMT时间,datetime值。
     * post_content_filtered – 不详,text值。

       post_parent – 文章的上级文章的ID,int(11)值,对应的是wp_posts.ID。默认为0,即没有上级文章。
     * guid – 这是每篇文章的一个地址,varchar(255)值。默认是这样的形式: http://your.blog.site/?p=1,如果你形成permalink功能,则通常会是: 你的Wordpress站点地址+文章名。
     * menu_order – 不详,int(11)值,默认为0。
     * post_type – 文章类型,具体不详,varchar(100)值。默认为0。
     * post_mime_type – 不详。varchar(100)值。
     * comment_count – 评论计数,具体用途不详,bigint(20)值。

wp_usermeta : 用于保存用户元信息(meta)的表,共4个字段:

     * umeta_id – 元信息ID,bigint(20)值,附加属性auto_increment。
     * user_id – 元信息对应的用户ID,bigint(20)值,相当于wp_users.ID。
     * meta_key – 元信息关键字,varchar(255)值。
     * meta_value – 元信息的详细值,longtext值。

这是在Wordpress 2.0中才新加入的表。

wp_users:用于保存Wordpress使用者的相关信息的表。WP官方对2.0.2版本中该表的情况的说明有些矛盾(称有22个字段,但详细的列表中只有11个),所以这里只能列出11个字段进行说明:

     * ID – 用户唯一ID,bigint(20)值,带附加属性auto_increment。
     * user_login – 用户的注册名称,varchar(60)值。
     * user_pass – 用户密码,varchar(64)值,这是经过加密的结果。好象用的是不可逆的MD5算法。
     * user_nicename – 用户昵称,varchar(50)值。
     * user_email – 用户电邮地址,varchar(100)值。
     * user_url – 用户网址,varchar(100)值。
     * user_registered – 用户注册时间,datetime值。
     * user_level – 用于等级,int(2)值,可以是0-10之间的数字,不同等级有不同的对WP的操作权限。
     * user_activation_key – 用户激活码,不详。varchar(60)值。
     * user_status – 用户状态,int(11)值,默认为0。
     * display_name – 来前台显示出来的用户名字,varchar(250)值。

通过这10张表,我们可以看出,整个wp系统所涉及的主要内容包括:

     * 文章(页面)及其分类
     * 链接及其分类
     * 选项、设置
     * 用户设定

等四大块的内容。

返回顶部