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

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

  • 相关阅读:
    sencha touch 扩展篇之将sencha touch打包成安装程序(上)- 使用sencha cmd打包安装程序
    sencha touch 扩展篇之使用sass自定义主题样式 (下)通过css修改官方组件样式以及自定义图标
    一个不错的android组件的网站
    sencha touch 扩展篇之使用sass自定义主题样式 (上)使用官方的api修改主题样式
    sencha touch 入门系列 (九) sencha touch 布局layout
    面试题总结
    国外接活网站Elance, Freelancer和ScriptLance的介绍和对比
    sencha touch 入门系列 扩展篇之sencha touch 项目打包压缩
    Android Design Support Library——Navigation View
    设计模式——命令模式
  • 原文地址:https://www.cnblogs.com/peipeiyu/p/7751647.html
Copyright © 2011-2022 走看看