日期:2014-05-16 浏览次数:20772 次
mysql> show global status like '%com_select%'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Com_select | 1 | +---------------+-------+ 1 row in set (0.00 sec) mysql>
------解决方案--------------------
1。MYSQL存储原理,数据文件按页存储最小单位是一页16K,每页的前100多个字节保存表的相关内容 包括数据库,表名,多少条记录被逻辑删除了,多少条记录没有
2。每条记录的头部保存的是该记录的总长度,因为虽然定义了长度但其实际长度均不尽相同,MYSQL第一个字段保存的是表的主键,第二个字段保存锁ID,用于表数据的加过和回滚,其长度固定的是13个字节。
3。不要经常的更新数据,因为更新相当于删除以前的,然后再追加一条记录。以上分别都能影响命中率,还有表的数据不是连续存储的,是根据整个数据表数据插入的先后存储的。以上希望有帮助,谢谢。
------解决方案--------------------
对了以上理论仅仅针对INNODB存储引擎,因存储引擎比较多,其他的不一定是这种方法。
------解决方案--------------------
Qcache_hits/(Qcache_hits+Com_select) 这个是比较通用的方法。
MYSQL本身并没有提供这个参数,并且各种计算方法,包括上面这个也都是非精确的。