mysql中的SQL分析工具

Another Look at MySQL 5.1's SQL Diagnostic Tools
http://dev.mysql.com/tech-resources/articles/mysql_51_diagnostic_tools.html

数据库的性能决定因素:
(1)数据库的设计
(2)SQL代码

可以用以下几种方法来解决一些性能问题:
(1)索引
(2)水平分区
(3)列适应的表
column-oriented dbms(http://en.wikipedia.org/wiki/Column-oriented_DBMS#Implementations)
一般表数据文件是按行存储,如:某一表被定义为id,name,desc,则按行存储为:
1,name1,desc1;2,name2,desc2;…
而按列存储为:
1,2;name1,name2;desc1,desc2;…

数据库性能分析方法:
Bottleneck analysis – what is my database, user community, and SQL code waiting on?
Workload analysis – who's logged on and what work are they performing?
Ratio analysis – what do rules-of-thumb statistics say about my performance?

相关的分析命令:
mysql日志分析慢查询日志,一般日志,错误日志
日志可以存在表中,也可存在数据文件中
指定日志存在哪:set global log_output='table'(CSV (comma separated value) engine) or 'file'
日志存的表:mysql.general_log(一般日志)和mysql.slow_log(慢查询日志)
指定日志存的文件:
SET GLOBAL general_log_file=’/tmp/general.log’;
SET GLOBAL slow_query_log_file=’/tmp/slow.log’;
开启/关闭慢查询日志:set global slow_query_log=1/0;
慢查询的threshold:set global long_query_time=1;(秒)
开启/关闭查询日志:set global general_log=1/0;
开启查询profile:set profiling=1;
显示所有profile:show profiles/G

你可能感兴趣的:(sql,mysql,数据库,query,profiling,statistics)