sql数据库走索引怎么始终有物理读?_MySQL

WBOY
发布: 2016-06-01 13:51:15
原创
980 人浏览过

bitsCN.com

   问题是这样的:
  1 sql> r

  2   1  select count(*)

  3   2  from t_edu_member_info

  4   3* where status='1' and xs_zy='1'

  01 执行计划

  02 -------------------------------------------------------------------------------------------

  03    0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=1 Card=1 Bytes=10)

  04    1    0   SORT (AGGREGATE)

  05    2    1     FILTER

  06    3    2       INDEX (RANGE SCAN) OF 'IND_T_PREBM4' (NON-UNIQUE) (Cost=1 Card=5 Bytes=50)

  07

  08 统计信息

  09 ----------------------------------------------------------

  10          25  recursive calls

  11          14  db block gets

  12           3  consistent gets

  13           1  physical reads

  14         972  redo size

  15         375  bytes sent via SQL*Net to client

  16         372  bytes received via SQL*Net from client

  17           2  SQL*Net roundtrips to/from client

  18           1  sorts (memory)

  19           0  sorts (disk)

  20           1  rows processed

  这个结果已经跑了几次,但是 recursive calls 依然存在,后来从10046事件产生的trace文件中到了线索。用tkprof格式化trace文件后,可以看到:

  1 select count(*)

  2 from t_edu_member_info

  3 where status='1'

  4 and xs_zy='1'

  01 call     count       cpu    elapsed       disk      query    current        rows

  02 ------- ------  -------- ---------- ---------- ---------- ----------  ----------

  03 Parse        1      0.01       0.00          0          0          0           0

  04 Execute      1      0.78       0.90   

 

bitsCN.com
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!