zoukankan      html  css  js  c++  java
  • mysql优化-》查询缓存

    使用MySql查询缓存(query_cache_size)

    MySql中查询缓存的原理:

    其实是MySql创建了一个临时的空间叫Qcache(这个空间生成在MySql的编译器内存中),这个空间的大小是用字节大小来计算,所以缓存多少数据可以根据需求进行调节.如果是第一次查询,则从硬盘找查找并返回结果,如果有记录返回Qcache会记录查找到的结果,当用户发出第二次查询,MySql就会询问Qcache是否已经存在了这个查询。如果存在则从Qcache中返回查询结果,如果不存在则又一次从硬盘中查找结果并把找到的结果放到Qcache当中.

    1.使用MySql查询缓存

    语法规则: set global query_cache_size = 开辟内存的字节大小

    比如我们要把一个Qcache的查询缓存的空间设置为64M,那么我们可以使用以下命令:

    set global query_cache_size = 64 * 1024 * 1024

    换算原理如下:

    64M = ?字节

    1kb = 1024 字节

    1M = 1024KB = 1024 * 1024字节

    64M = 64 * 1024 * 1024

    默认的情况下,mysql是没有开启查询缓存的功能

    没有开启查询缓存,那么无论你查多少次数据库都是去硬盘当中查找数据,因此速度不会发生很多的时间差,然后现在设置查询缓存Qcache的空间为64M后在来查看结果,详细步骤如下:

    1步:使用命令set global query_cache_size = 64 * 1024 * 1024 设置查询缓存的空间(Qcache的空间)

    不出现任何的错误就代表设置成功,就代表当前开启了查询缓存,并且拥有64M的临时内存空间。

    2步:再次测试select * from  tbl_no where username=’itheima’查看结果

    1次查询:4.78sec,并且Qcache会记录当前的查询结果

    2,3,4...次查询:0sec,从Qcache中返回结果,发觉速度提升了很多倍

    总结:查询缓存是一种非常简单的手段,只需要一个简单命令设置空间的字节大小就能完成这个优化技术,然而查询缓存是需要付出代价的,因为查询缓存会占据内存的空间,因此如果你开启很多的内存空间,而内存空间爆满了,那么计算机的操作系统有可能会缓慢甚至重启,因此查询缓存是在一个公司创立时候大概只有100万条数据左右的时候建议使用,如果你数据已经超过千万级别访问量又特别的大的时候,查询缓存极有可能造成服务器的重启或者内存的崩溃.

    注意事项:查询缓存对整个数据库都有效

    2.关闭MySql查询缓存

    语法规则: set global query_cache_size = 0

    关闭后,缓存就会失效,之前的查询结果全部又会到硬盘当中去查找了

  • 相关阅读:
    code review
    自我封闭
    怎么验证?
    DRUPAL点滴
    CRLF CSRF XSS
    各种element/format 在manage display 下的选项
    html list <==> unformatted list
    ctrl + d 在phpstorm 和 eclipse 中的不同含义
    常量和变量的区别
    JSON和php里的数据序列化
  • 原文地址:https://www.cnblogs.com/peipeiyu/p/7751647.html
Copyright © 2011-2022 走看看