日期:2014-05-17  浏览次数:20552 次

求解mysql的com_select状态?
本帖最后由 u010572351 于 2013-07-16 09:46:51 编辑
刚刚开始学mysql优化,一学到下面这个语句就懵了:
show session status like 'com_select';



遇到两种说法:

1.说这个和com_update、com_insert、com_delete一样,分别是查询本次会话中增删改查了多少次。

2.还有说不是专门统计select语句执行了多少次的,是统计mysql执行各种查询操作的次数(频率),比如登陆mysql 输入密码,mysql就会查询管理员密码是否正确,这次查询也计算到com_select。



但是,我select语句查询一次,发现com_select并没有增加,use database 一下,com_select增加了一个。

我现在都不知道,究竟什么操作是com_select统计的对象?

------解决方案--------------------
手册上说
Com_select的值等价于:
Qcache_inserts
+ Qcache_not_cached
+ queries with errors found during columns/rights check

自己慢慢研读吧
------解决方案--------------------
自己翻译翻译不久完了?

简单说就是:
com_select 变量记录的是无缓存的查询次数+错误查询+权限检查查询。
你之所以查询第二次com_select的值没有增加,是因为查询结果是有缓存的,如果命中缓存,缓存命中的次数加1,也就是Qcache_hits变量的值加1.