Mysql  优化的关键词(原创)

转载注明出处,不过一般也不容易看懂。^_^~


for text mysql

mysqlslap  Mysql5.1发型包中包含


sysbench  测试 cpu fileio oltp 内存分配  传输速度等


Mysql BenchMark Suite (sql-bench)单线程 但含大量测试单元


Super  Smack  Mysql与PostgreSQL的基准测试工具


benchmark()函数 


MySQL性能分析 Profiling

慢查询记录  

log_slow_queries 代表MYSQL慢查询的日志存储目录, 此目录文件一定要有写权限

long_query_time: 最长执行时间.

log-queries-not-using-indexes : log下来没有使用索引的query,可以根据情况决定是否开启

毫毛精确定义的补丁


Mysqldumpslow 原带

Mysql_slow_log_filter 可以理解毫秒精确的日志

Mysql_slow_log_parser  慢日志聚合、报表 规范化汇总

mysqlsla  规范化汇总


mysqladmin  extended -r -i 10


使用Show status 分析查询

flush status;

select SQL_NO_CACHE ....

Show Session Status Like 'Select%'

+------------------------+-------+
Variable_name          Value |
+------------------------+-------+
Select_full_join                                            没有使用索引的联表的数量
Select_full_range_join                               在引用的表中使用范围搜索的
Select_range                                                在第一个表中使用范围的联接的数量
Select_range_check                                   在每一行数据后对键值进行检查的不带键值的联表的数量。如果不为0,你应仔细检查表的索引
Select_scan                                                  对第一个表进行完全扫描的数量
+------------------------+-------+

Show Session Status Like 'Handler%'


+----------------------------+-------+
Variable_name              Value |
+----------------------------+-------+
Handler_commit                 |
Handler_delete                 |
Handler_discover               |
Handler_prepare                |
Handler_read_first                                              索引中第一条被读的次数,如果较高,服务器正执行大量全索引扫描
Handler_read_key           33831                           根据键读一行的请求数,如果较高,说明查询和表的索引正确
Handler_read_next                                             按照键顺序读下一行的请求数
Handler_read_prev                                             按照键顺序读上一行的请求数,主要用于优化ORDER BY ... DESC
Handler_read_rnd           48                                   
Handler_read_rnd_next      33977                     
Handler_rollback               |
Handler_savepoint              |
Handler_savepoint_rollback     |
Handler_update             33779 |
Handler_write              48    |
+----------------------------+-------+


show  session  status  like  'Sort%';          mysql  在排序过程中的动作

+-------------------+-------+
Variable_name     Value |
+-------------------+-------+
Sort_merge_passes                                    排序算法已经执行的合并的数量。如果这个变量值较大,应考虑增加sort_buffer_size系统变量的值
Sort_range                                                     在范围内执行的排序的数量
Sort_rows         200                                            已经排序的行数
Sort_scan                                                       通过扫描表完成的排序的数量
+-------------------+-------+


show  session  status  like  'Created%';          mysql为查询创建的临时表
+-------------------------+-------+
Variable_name                      Value  |
+-------------------------+-------+
Created_tmp_disk_tables                                                    服务器执行语句时在硬盘上自动创建的临时表的数量
Created_tmp_files                                                                                mysql已经创建的临时文件的数量
Created_tmp_tables                                                                        服务器执行语句时自动创建的内存中的临时表的数量。如果Created_tmp_disk_tables较大,你可能要增

+-------------------------+-------+                             加tmp_table_size值使临时 表基于内存而不基于硬盘

运行 show session status like  可能会对  Created_tmp_tables   产生影响



show profile

set profiling =1;

select from

show profiles;    查看已经被分析过的查询

show profile;

+----------------------+----------+
Status               Duration |
+----------------------+----------+

(initialization)    0.000083 |
starting             0.000083 |
Opening tables       0.000090 |
System lock          0.000008 |
Table lock           0.000010 |

init                 0.000033 |

optimizing           0.000009 |
statistics           0.000011 |
preparing            0.000012 |
Creating tmp table   0.000043 |
executing            0.000007 |
Copying to tmp table 0.048096 |
Sorting result       0.000044 |
Sending data         0.000243 |
end                  0.000006 |
removing tmp table   0.000010 |
end                  0.000006 |
query end            0.000005 |
freeing items        0.000048 |
logging slow query   0.000006 |
logging slow query   0.000044 |
cleaning up          0.000007 |
+----------------------+----------+


其他

show  innodb status 

show mutex status

使用数据表嗅探工具 mysqlsniffer  tcpdump


追踪mysql

show processlist

netstat   -ntp grep :37636

netstat  -ntp grep 16072/apache2

grep 389  /etc/services

ps   -eaf  grep 'UID\|16072'

lsof  -i -p grep 16072


OProfile linux系统分析器


优化排序

Select <cols> From profiles Where sex 'm' Order By rating Limit 10000,10

偏移量过多,应该减少mysql扫描即将被丢弃数据的时间,采取只取主键在链接回去的方式

Select <cols> From profiles Inner Join (

   Select <primary key col> From profiles 

     Where sex 'm' Order By rating Limit 10000,10

as USING (primary key cols)


索引统计

show index from **


ALTER Table 加速

Alter table film  Modify Column rental_duration tinyint(3) NOT NULL default 5

应该为

Alter table file Alter Column rental_duratoiin Set Default 5


 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值