一.mysqladmin的使用
#mysqladmin extended-status -u root -i 2 -c 2 -p | grep connect
查看mysql的状态中带有connect字符的变量,每两秒统计一次,共统计2次

#mysqladmin extended-status -u root -r -i 2 -p | grep connect
查看2秒内的增量输出,该项不起作用

二.mysql服务器状态变量中的重要部分

1.Aborted_clients
如果这个变量随时间增加,就要确认是否优雅的关闭了连接.如果不是就要检查网络性能,并且检查max_allowed_packet的配置变量,超过了max_allowed_packet的查询会被强制中断

2.Aborted_connection
这个值应该接近0.不是的话,可能是网络问题.当然如果有攻击或定义了无效的数据库,该值会增加.

3.Binlog_cache_disk和Binlog_cache_use
如果Binlog_cache_disk和Binlog_cache_use之间的比率很大,那么就应该增加binlog_cache_size的值.大部分事物都应该落在二进制日志缓存中.
没有好办法可以减少二进制日志缓存未命中,只能增加binlog_cache_size来观察.

4.Bytes_received和Bytes_sent
这两个值可以帮助你考察问题是由接收数据过多引起的,还是发送数据过多引起

5.Com_*
应该注意不要让Com_rollback这样不常见的变量超过预期

6.Connections
这个值表示意图连接到服务器的数量.如果该值快速增加,例如每秒几百,那么应该检查连接次数或调整操作系统的网络堆栈

7.Created_tmp_disk_tables
如果这个值比较高,有两件事发生了错误
a.查询在BLOB或TEXT列的时候创建了临时表
b.tmp_table_size和max_heap_table_size可能不够大

8.Created_tmp_tables
该值较高唯一处理办法是优化查询

9.Handler_read_rnd_next
Handler_read_rnd_next/Handler_read_rnd 显示了全表扫描的大致平均值.如果该值较大,那么应该优化架构、索引和查询

10.Key_blocks_used
如果
Key_blocks_used * key_cache_block_size(参数,不是变量)的值远远小于已经充分热身的服务器上的key_buffer_size,那么久意味这key_buffer_size值太大了,内存被浪费了.

11.Key_reads(从磁盘读取索引的请求次数)
要注意观察每秒发生的读取次数,并且这个值和I/O系统进行匹配.如果该值在单位时间内过大,则需要看磁盘是否能与此匹配.

12.Max_used_connections
如果该值和max_connections相同,那么可能是max_connections设置的过低或系统最大负载超过了服务器上限了.很多情形下单纯的增加max_connections并不能解决问题.查看程序行为是否正常,服务器调优是否正确,服务器架构是否良好.

13.Open_files
注意不要和open_files_limit值接近,如果接近了,就要增加open_files_limit

14.Open_tables和opened_tables
open_tables:是当前在缓存中打开表的数量。(flush tables将对该项起作用)
opened_tables:是mysql自启动起,打开表的数量。
应该将这两个值和table_cache对照,如果每秒有太多的opened_tables,那么说明table_cache还不够大.表缓存没有被利用上.显式的建立临时表(CREATE TEMPORARY TABLE table_name)也回导致opened_tables的增加.

15.Qcache_*
查询缓存

16.Select_full_join
全联接是无索引联接.这是真正的性能杀手,最好能避免,即便一分钟一次也太多了.

17.Select_full_range_join
如果该变量过高,那么说明运行了许多使用了范围查询联接表.范围查询比较慢,同时也是个性能优化点.

18.Select_range_check
该变量记录了在联接时,对每一行数据重新检查索引的查询数量.这项性能开销很大,如果该值较高或正在增加,那么意味着一些查询没有找到好索引.

19.Slow_launch_threads
该变量说明了某些因素正在延迟联接的新线程.通常表示系统过载.

20.Sort_merge_passes
该变量较大,应该增加sort_buffer_size.

21.Table_locks_waited
该变量显示了有多少表被锁住,并且导致了服务器级的锁等待.innodb的行锁并不会使这个值增加.如果该值较高并且正在增加,说明遇到了严重的并发瓶颈.这时候应该考虑使用innodb存储引擎,手动对大表分区,或者使用mysql的分区机制,优化查询,启用并发插入或者对锁定设置进行优化.

22.Threads_created
如果该值变量较大或正在增加,也许应该增加thread_cache_size的值.可以通过检查threads_cache知道有多少线程在缓存中了.

三.每连接设置调优

1.sort_buffer_size
控制用于文件排序的缓存大小.即使需要排序的数据量很小,mysql也会按照设置一次分配全部的空间

2.read_buffer_size(针对myisam)
对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。

3.read_rnd_buffer_size(针对myisam)
如果你认为连续扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能
增加order by查询效率

4.tmp_table_size
临时表大小

5.myisam_sort_buffer_size
用于修复表

mysql优化杂记的更多相关文章

  1. MySQL优化聊两句

    原文地址:http://www.cnblogs.com/verrion/p/mysql_optimised.html MySQL优化聊两句 MySQL不多介绍,今天聊两句该如何优化以及从哪些方面入手, ...

  2. 0104探究MySQL优化器对索引和JOIN顺序的选择

    转自http://www.jb51.net/article/67007.htm,感谢博主 本文通过一个案例来看看MySQL优化器如何选择索引和JOIN顺序.表结构和数据准备参考本文最后部分" ...

  3. mysql 优化

    1.存储过程造数据 CREATE DEFINER=`root`@`localhost` PROCEDURE `generate_test_data`(`n` int) begin declare i ...

  4. mysql优化笔记之分页

    过年闲得蛋疼,于是看看mysql优化,看了网上好多关于分页的优化方法,但是呢,我亲自试上一把的时候,没有出现他们说的现象...难道是我的机器问题么? 下面看看我的实践记录,希望看到的加入进来交流一下O ...

  5. MySQL优化概述

    一. MySQL优化要点 MySQL优化是一门复杂的综合性技术,主要包括: 1 表的设计合理化(符合 3NF,必要时允许数据冗余) 2.1 SQL语句优化(以查询为主) 2.2 适当添加索引(主键索引 ...

  6. MySQL优化实例

    这周就要从泰笛离职了,在公司内部的wiki上,根据公司实际的项目,写了一些mysql的优化方法,供小组里的小伙伴参考下,没想到大家的热情很高,还专门搞了个ppt讲解了一下. 举了三个大家很容易犯错的地 ...

  7. Mysql优化系列(2)--通用化操作梳理

    前面有两篇文章详细介绍了mysql优化举措:Mysql优化系列(0)--总结性梳理Mysql优化系列(1)--Innodb引擎下mysql自身配置优化 下面分类罗列下Mysql性能优化的一些技巧,熟练 ...

  8. mysql优化记录

    老板反应项目的反应越来越慢,叫优化一下,顺便学习总结一下mysql优化. 不同引擎的优化,myisam读的效果好,写的效率差,使用场景 非事务型应用只读类应用空间类应用 Innodb的特性,innod ...

  9. mysql 优化实例之索引创建

    mysql 优化实例之索引创建 优化前: pt-query-degist分析结果: # Query 23: 0.00 QPS, 0.00x concurrency, ID 0x78761E301CC7 ...

随机推荐

  1. javascript实现下雪效果

    原理: 1.js动态创建DIV,指定CLASS类设置不同的背景图样式显示不同的雪花效果. 2.js获取创建的DIV并改变其top属性值,当下落的高度大于屏幕高后删除该移动div 3.好像不够完善勿喷 ...

  2. Mvc4中使用Spring.Net实现IOC和DI

    一个Hello类,一个IHello接口 1.引用dll 2.修改Global文件 (SpringMvcApplication) 3.控制器添加属性 4.WebConfig配置 5.Spring.xml ...

  3. spring bean生命周期管理--转

    Life Cycle Management of a Spring Bean 原文地址:http://javabeat.net/life-cycle-management-of-a-spring-be ...

  4. C# 无边框异型窗体制作

    我是一个C#的初学者 只要涉及到windows窗体编程 都希望窗体的外观比较好看 不是系统默认的那样 对于C# 更改窗体外观感觉并不那么轻松 更改窗体外观涉及到使用GDI+ 我所知道的有两种方法: 有 ...

  5. 【Ionic】---AngularJS扩展基本布局

    目录: 标题栏 : ion-header-bar 页脚栏 : ion-footer-bar header/footer : 样式及内容 内容区 : ion-content 滚动框 : ion-scro ...

  6. 【转】android开发 dts、各种接口porting----不错

    原文网址:http://www.xuebuyuan.com/1023185.html 1. repo init -u git://review.sonyericsson.net/platform/ma ...

  7. 提高php代码质量 36计

    1.不要使用相对路径 常常会看到: ? 1 require_once('../../lib/some_class.php'); 该方法有很多缺点: 它首先查找指定的php包含路径, 然后查找当前目录. ...

  8. HTML 页面载入 Flash 插件的几种方法

    前言 之所以写这篇文章,主要是由于组长给提的一个新的需求--使用浏览器调用电脑的摄像头,来实现即时拍照的功能.在网上查了非常多资料,由于这样那样的原因,终于选择了使用flash插件来调用pc的摄像头. ...

  9. poi jar包介绍

    来自官网: Component Application type Maven artifactId Notes POIFS OLE2 Filesystem poi Required to work w ...

  10. Spring Boot 2 整合Swagger简单入门

    Swagger是一款RESTFUL接口的文档在线自动生成+功能测试功能软件. 1.pom.xml添加配置 可以到http://mvnrepository.com上搜索springfox,便可以看到Sp ...