免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1284 | 回复: 4

【已解决】我的MySQL 没有开启缓存. 这是为何. [复制链接]

论坛徽章:
0
发表于 2012-08-06 17:12 |显示全部楼层
本帖最后由 cenalulu 于 2012-08-09 18:19 编辑

首先我的存储引擎是MyISAM的默认搜索引擎.

我在使用profile检测前后两个相同SQL的查询的时候,发现第二个查询没有走缓存的操作. 非常诧异.

步骤如下:

首先执行了以下两个查询操作
  1. mysql> select count(*) from sms_msg;
  2. +----------+
  3. | count(*) |
  4. +----------+
  5. |     4019 |
  6. +----------+
  7. 1 row in set (0.00 sec)

  8. mysql> select count(*) from sms_msg;
  9. +----------+
  10. | count(*) |
  11. +----------+
  12. |     4019 |
  13. +----------+
  14. 1 row in set (0.00 sec)
复制代码
对两次同样的查询操作做检查,. (按道理第二步应该被缓存起来的)

  1. mysql> show profiles;
  2. +----------+------------+------------------------------+
  3. | Query_ID | Duration   | Query                        |
  4. +----------+------------+------------------------------+
  5. |        1 | 0.00072000 | SELECT DATABASE()            |
  6. |        2 | 0.00742200 | show databases               |
  7. |        3 | 0.00345200 | show tables                  |
  8. |        4 | 0.00058300 | select count(*) from sms_msg |
  9. |        5 | 0.00040100 | select count(*) from sms_msg |
  10. +----------+------------+------------------------------+
  11. 5 rows in set (0.00 sec)

  12. mysql> show profile for query 4;
  13. +--------------------+----------+
  14. | Status             | Duration |
  15. +--------------------+----------+
  16. | starting           | 0.000273 |
  17. | Opening tables     | 0.000029 |
  18. | System lock        | 0.000021 |
  19. | Table lock         | 0.000030 |
  20. | init               | 0.000028 |
  21. | optimizing         | 0.000022 |
  22. | executing          | 0.000027 |
  23. | end                | 0.000038 |
  24. | query end          | 0.000020 |
  25. | freeing items      | 0.000060 |
  26. | logging slow query | 0.000018 |
  27. | cleaning up        | 0.000017 |
  28. +--------------------+----------+
  29. 12 rows in set (0.00 sec)

  30. mysql> show profile for query 5;
  31. +--------------------+----------+
  32. | Status             | Duration |
  33. +--------------------+----------+
  34. | starting           | 0.000112 |
  35. | Opening tables     | 0.000028 |
  36. | System lock        | 0.000020 |
  37. | Table lock         | 0.000030 |
  38. | init               | 0.000028 |
  39. | optimizing         | 0.000023 |
  40. | executing          | 0.000028 |
  41. | end                | 0.000019 |
  42. | query end          | 0.000019 |
  43. | freeing items      | 0.000057 |
  44. | logging slow query | 0.000019 |
  45. | cleaning up        | 0.000018 |
  46. +--------------------+----------+
  47. 12 rows in set (0.00 sec)

复制代码
但是两次结果却一样, 难道是因为执行时间是0秒的关系吗?

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
发表于 2012-08-06 18:12 |显示全部楼层
你指的缓存是query cache吧?
show global variables like '%query_cache%' 先看下是否打开了吧

论坛徽章:
2
技术图书徽章
日期:2013-10-30 14:37:252015年亚洲杯之伊朗
日期:2015-04-30 13:37:02
发表于 2012-08-06 19:09 |显示全部楼层
会不会是跟myisam本身是存储了表的行数相关?

论坛徽章:
0
发表于 2012-08-06 19:15 |显示全部楼层
MyISAM的select count(*)是从系统表读取  不需要走缓存

论坛徽章:
220
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:53操作系统版块每日发帖之星
日期:2016-05-10 19:22:58月度论坛发贴之星
日期:2016-01-31 22:25:02操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
发表于 2012-08-09 16:53 |显示全部楼层
select count(*)后面没加条件查询,


mysql直接给结果,mysql不呆lol
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2021中国系统架构师大会

【数字转型 架构重塑】2021年5月20日-22日第十三届中国系统架构师大会将在云端进行网络直播。

大会为期3天的议程,涉及20+专场,近120个主题,完整迁移到线上进行网络直播对会议组织来说绝非易事;但考虑到云端会议的直播形式可以实现全国各地技术爱好者的参与,也使ITPUB作为技术共享交流平台得到更好的普及,我们决定迎难而上。
http://sacc.it168.com/


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP