zoukankan      html  css  js  c++  java
  • MYSQL 查询缓存

    查询缓存:

                是指对select 语句的结果进行缓存,当下一次运行同样的select语句时,就可以直接返回数据,跳过解析,执行,优化阶段。

                1、查询缓存会跟踪查询涉及的表,如果表发生变化,相关的缓存都会失效。

                2、查询缓是否命中,是根据select 语句来定的  或是说根据select 的hash值来定的。

                    例子:

                          (1)select X from table_A;    --- hash ---->  5

                          (2)select X 

                              from table_A;                ---hash -----> 9  

                          这两个select 语句在人类看来有一样的逻辑,但是MYSQL 可不这样想,它认为这两个是不一样的。

                          理由是第一个语句只有一行,第二个有两行。就算多一个空格它都会说是不一样的,它的一样与否是

                          根据hash 值来讲的。而hash 值又关联着缓存表的位置,所以第二个select 没有办法从用第一个的缓存。

                         

                   

                          一致的书写风格会加速查询的速度。

                3、当查询中包涵任何不确定数据时,就不会被缓存 。如包涵new(),current_date();

                4、缓存是建立在select 语句的基础上的,而且只有刚收到SQL语句时才检查是否有对应的缓存,

                    所以存储过程与子查询与之无缘了。

    总结:

          它也不是‘银弹’,打个比方吧,如果对表进行了更新或插入,以前的缓存就没有用了。要命是的一个表对应的缓存一般

          不只一个。就算是这样缓存大多数据情况下还是可以提升性能。

  • 相关阅读:
    男子利用POS机帮人非法套现1576万余元被起诉
    套现花样很多 弄不好成了诈骗
    刀尖上的无本生意 信用卡套现投资盛行
    新三板是什么—新三板科普知识讲堂
    Android注入事件的三种方法比较
    当今最流行的Node.js应用开发框架简介
    安卓WindowManager注入事件如何跳出进程间安全限制
    伟大创意检验10要
    初创互联网公司简明创业指南
    根据Unix哲学来编写你的HTML5 Websocket服务器来实现全双工通信
  • 原文地址:https://www.cnblogs.com/JiangLe/p/4033179.html
Copyright © 2011-2022 走看看