mysql常用的性能分析

alter table text engine=innodb;表引擎转移 //可能会花费大量时间,而且在转换期间i/o很高 

set @input := 'hello'; select benchmark(1000000,md(@input));  循环10万次,用于测试数据库的执行效率

 

mysql中日志:

   普通日志  log = <file_name>

   慢速日志   log-slow-queries = <file_name>  

                 long_query_time =2   //defalut 10

                 log-queries-not-using-indexed

                 log-slow-admin-statements

   mysql_slow_log_filter  是慢日志分析工具   tail -f mysql-slow.log |  perl mysql_slow_log_filter -T 0.5 -R 1000 //运行时间超过0.5秒,检查大于   1000行

 

show session status like 'select%'  不同类型的联接执行计划

show session status like 'handler%' 存储引擎的操作‘

show session status like  'created-%'  在查询执行期间创建临时表和文件

show session status like 'sort_% '几种排序信息

 

show profile  一般是关闭

>set profiling =1;

>select * from test  limit 100

mysql> show profiles\G
*************************** 1. row ***************************
Query_ID: 1
Duration: 0.00019000
Query: select * from ytext_cloud_card where Fid >100 order by Fid desc limit 100
*************************** 2. row ***************************
Query_ID: 2
Duration: 0.00018900
Query: select * from ytext_cloud_card where id >100 order by id desc limit 100
*************************** 3. row ***************************
Query_ID: 3
Duration: 0.00016200
Query: show create table ytext_cloud_card
*************************** 4. row ***************************
Query_ID: 4
Duration: 0.01603700
Query: select * from ytext_cloud_card where Fuid >100 order by Fuid desc limit 100
4 rows in set (0.00 sec)

 

mysql> show profile;
+--------------------------------+----------+
| Status | Duration |
+--------------------------------+----------+
| starting | 0.000017 |
| checking query cache for query | 0.000055 |
| Opening tables | 0.000011 |
| System lock | 0.000003 |
| Table lock | 0.000023 |
| init | 0.000042 |
| optimizing | 0.000007 |
| statistics | 0.000058 |
| preparing | 0.000021 |
| executing | 0.000002 |
| Sorting result | 0.000004 |
| Sending data | 0.015761 |
| end | 0.000004 |
| query end | 0.000002 |
| freeing items | 0.000021 |
| storing result in query cache | 0.000003 |
| logging slow query | 0.000001 |
| cleaning up | 0.000002 |
+--------------------------------+----------+
18 rows in set (0.00 sec)

 

show profile cpu for query 1; //执行查询时cpu使用率

 

show processlist mysql连接

varchar(5) 和varchar(100) 占有的空间是一样的,但是在分配内存是会分配一整块,所以尽量使用小值.

 

修改表中某字段的默认值,只修改.frm文件

alter table test alter column tt set default 5;

 

posted @ 2012-10-04 17:39  风去无痕  阅读(353)  评论(0编辑  收藏  举报