MySQL中使用show status语句查询MySQL的性能参数
语法:
show status like [statement]
常用statement说明:
# 查询连接MySQL服务器的次数
# 查询MySQL服务器上线的时间
# 查询慢查询的次数
# 查询 查询 *** 作的次数
查看MySQL服务器配置信息 :
查看MySQL服务器运行的各种状态值 :
慢查询:
连接数:
key_buffer_size 是对MyISAM表性能影响最大的一个参数
临时表:
查看open table :
进程使用情况:
查询缓存(query cache) :
文件打开数(open_files) :
表锁情况 :
表扫描情况 :
查询吞吐量:
连接情况:
分析查询语句
mysql提供了explain语句和describe语句,进行分析查询语句
EXPLAIN的语法:
说明:
示例:
DESCRIBE语句
使用方法与EXPLAIN语句是一样的,并且分析结果也是一样的。
语法:
mysql中提高性能的最有效的方式:
1, 对数据表设计合理的索引。索引提供了高效访问数据的方法,并且加快了查询的速度。
使用索引查询几种特殊情况:
我们都知道 MySQL 的 Table Cache 是表定义的缓存,江湖上流传着各种对这个参数的调优方法。table cache 的作用,就是节约读取表结构文件的开销。对于table cache 是否命中,其实table cache 是针对于线程的,每个线程有自己的缓存,只缓存本线程的表结构定义。不过我们发现,strace 中没有关于表结构文件的 open *** 作(只有 stat *** 作,定位表结构文件是否存在),也就是说 table cache 不命中,不一定需要读取表结构文件。这种感觉好像是:在不命中 table cache 时,命中了另外一个表结构缓存。
运维建议:
我们读一下 MySQL 的文档,关于 table_open_cache 的建议值公式:建议值 = 最大并发数 * join 语句涉及的表的最大个数。
通过实验我们容易理解:table_cache 是针对于线程的,所以需要最大并发数个缓存。另外,一个语句 join 涉及的表,需要同时在缓存中存在。所以最小的缓存大小,等于语句 join 涉及的表的最大个数。将这两个数相乘,就得到了 MySQL 的建议值公式。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)