我如何configurationMySQL?

有哪些工具可用于configurationMySQL,比如MSSQL 2000+如何与SQL Profiler配合使用?

我想跟踪SQL语句执行,执行时间,执行计划等。

查看启用查询日志和慢速查询日志 。

如果您的生产/testing环境中打开了查询日志logging[这不是必要的情况],则可以使用maatkit工具包中的mk-query-digest 。 它会帮助你确定哪些查询是最频繁/最长的服用等等

另一个商业select是MySQL查询分析器 ,它是MySQL企业监视器的一部分。 我发现它在帮助描述古怪查询找出提高性能的方法方面有一定的帮助。

你也可以看看MySQLTuner

这里有一篇关于MySQL分析器的好文章 。 虽然看看解释说明。

我使用这个小脚本。 这对我来说总是有用的,尽pipe没有什么官方的。

http://genomewiki.ucsc.edu/index.php/Tuning-primer.sh

我已经使用了好几个脚本和其他工具,但是我发现Jet Profiler真的很擅长给出实时监控和可视化,以及事情是如何改变的。 完整的版本花钱,但受限制的免费版本也是有用的,并给你一个很好的感觉,完整的人可以做。

请参阅: https : //sites.google.com/site/basicsqlmanagment/适用于我,不是代理分析器

我强烈build议以下

  • PT-查询消化
  • mk-query-digest (过时但仍然有效)

从旧的MAATKIT文档

Column Meaning ============ ========================================================== Rank The query's rank within the entire set of queries analyzed Query ID The query's fingerprint Response time The total response time, and percentage of overall total Calls The number of times this query was executed R/Call The mean response time per execution Apdx The Apdex score; see --apdex-threshold for details V/M The Variance-to-mean ratio of response time EXPLAIN If --explain was specified, a sparkline; see --explain Item The distilled query 

在DBA StackExchange中,我回答了MySQL常规查询日志性能影响 。 在我的旧文章中,我build议使用mk-query-digest而不是一般日志或慢日志。 从这篇文章中,这里是由mk-query-digest完成的查询分析的示例输出:

 # Rank Query ID Response time Calls R/Call Item # ==== ================== ================ ======= ========== ==== # 1 0x812D15015AD29D33 336.3867 68.5% 910 0.369656 SELECT mt_entry mt_placement mt_category # 2 0x99E13015BFF1E75E 25.3594 5.2% 210 0.120759 SELECT mt_entry mt_objecttag # 3 0x5E994008E9543B29 16.1608 3.3% 46 0.351321 SELECT schedule_occurrence schedule_eventschedule schedule_event schedule_eventtype schedule_event schedule_eventtype schedule_occurrence.start # 4 0x84DD09F0FC444677 13.3070 2.7% 23 0.578567 SELECT mt_entry # 5 0x377E0D0898266FDD 12.0870 2.5% 116 0.104199 SELECT polls_pollquestion mt_category # 6 0x440EBDBCEDB88725 11.5159 2.3% 21 0.548376 SELECT mt_entry # 7 0x1DC2DFD6B658021F 10.3653 2.1% 54 0.191949 SELECT mt_entry mt_placement mt_category # 8 0x6C6318E56E149036 8.8294 1.8% 44 0.200667 SELECT schedule_occurrence schedule_eventschedule schedule_event schedule_eventtype schedule_event schedule_eventtype schedule_occurrence.start # 9 0x392F6DA628C7FEBD 8.5243 1.7% 9 0.947143 SELECT mt_entry mt_objecttag # 10 0x7DD2B294CFF96961 7.3753 1.5% 70 0.105362 SELECT polls_pollresponse # 11 0x9B9092194D3910E6 5.8124 1.2% 57 0.101973 SELECT content_specialitem content_basecontentitem advertising_product organizations_neworg content_basecontentitem_item_attributes # 12 0xA909BF76E7051792 5.6005 1.1% 55 0.101828 SELECT mt_entry mt_objecttag mt_tag # 13 0xEBE07AC48DB8923E 5.5195 1.1% 54 0.102213 SELECT rssfeeds_contentfeeditem # 14 0x3E52CF0261A7C3FF 4.4676 0.9% 44 0.101536 SELECT schedule_occurrence schedule_occurrence.start # 15 0x9D0BCD3F6731195B 4.2804 0.9% 41 0.104401 SELECT mt_entry mt_placement mt_category # 16 0x7961BD4C76277EB7 4.0143 0.8% 18 0.223014 INSERT UNION UPDATE UNION mt_session # 17 0xD2F486BA41E7A623 3.1448 0.6% 21 0.149754 SELECT mt_entry mt_placement mt_category mt_objecttag mt_tag # 18 0x3B9686D98BB8E054 2.9577 0.6% 11 0.268885 SELECT mt_entry mt_objecttag mt_tag # 19 0xBB2443BF48638319 2.7239 0.6% 9 0.302660 SELECT rssfeeds_contentfeeditem # 20 0x3D533D57D8B466CC 2.4209 0.5% 15 0.161391 SELECT mt_entry mt_placement mt_category 

在这个输出之上是这20个性能最差的查询的直方图

第一个条目的直方图的例子

 # Query 1: 0.77 QPS, 0.28x concurrency, ID 0x812D15015AD29D33 at byte 0 __ # This item is included in the report because it matches --limit. # pct total min max avg 95% stddev median # Count 36 910 # Exec time 58 336s 101ms 2s 370ms 992ms 230ms 393ms # Lock time 0 0 0 0 0 0 0 0 # Users 1 mt # Hosts 905 10.64.95.74:54707 (2), 10.64.95.74:56133 (2), 10.64.95.80:33862 (2)... 901 more # Databases 1 mt1 # Time range 1321642802 to 1321643988 # bytes 1 1.11M 1.22k 1.41k 1.25k 1.26k 25.66 1.20k # id 36 9.87G 11.10M 11.11M 11.11M 10.76M 0.12 10.76M # Query_time distribution # 1us # 10us # 100us # 1ms # 10ms # 100ms ################################################################ # 1s ### # 10s+ # Tables # SHOW TABLE STATUS FROM `mt1` LIKE 'mt_entry'\G # SHOW CREATE TABLE `mt1`.`mt_entry`\G # SHOW TABLE STATUS FROM `mt1` LIKE 'mt_placement'\G # SHOW CREATE TABLE `mt1`.`mt_placement`\G # SHOW TABLE STATUS FROM `mt1` LIKE 'mt_category'\G # SHOW CREATE TABLE `mt1`.`mt_category`\G # EXPLAIN SELECT `mt_entry`.`entry_id`, `mt_entry`.`entry_allow_comments`, `mt_entry`.`entry_allow_pings`, `mt_entry`.`entry_atom_id`, `mt_entry`.`entry_author_id`, `mt_entry`.`entry_authored_on`, `mt_entry`.`entry_basename`, `mt_entry`.`entry_blog_id`, `mt_entry`.`entry_category_id`, `mt_entry`.`entry_class`, `mt_entry`.`entry_comment_count`, `mt_entry`.`entry_convert_breaks`, `mt_entry`.`entry_created_by`, `mt_entry`.`entry_created_on`, `mt_entry`.`entry_excerpt`, `mt_entry`.`entry_keywords`, `mt_entry`.`entry_modified_by`, `mt_entry`.`entry_modified_on`, `mt_entry`.`entry_ping_count`, `mt_entry`.`entry_pinged_urls`, `mt_entry`.`entry_status`, `mt_entry`.`entry_tangent_cache`, `mt_entry`.`entry_template_id`, `mt_entry`.`entry_text`, `mt_entry`.`entry_text_more`, `mt_entry`.`entry_title`, `mt_entry`.`entry_to_ping_urls`, `mt_entry`.`entry_week_number` FROM `mt_entry` INNER JOIN `mt_placement` ON (`mt_entry`.`entry_id` = `mt_placement`.`placement_entry_id`) INNER JOIN `mt_category` ON (`mt_placement`.`placement_category_id` = `mt_category`.`category_id`) WHERE (`mt_entry`.`entry_status` = 2 AND `mt_category`.`category_basename` IN ('business_review' /*... omitted 3 items ...*/ ) AND NOT (`mt_entry`.`entry_id` IN (53441))) ORDER BY `mt_entry`.`entry_authored_on` DESC LIMIT 4\G