zoukankan      html  css  js  c++  java
  • 为什么MySQL做查询语句时,第一次会很慢,但是第二次,第三次就会变快?

    1、mysql默认的query_cache是打开的,第一次查询走的是数据文件,第二次就是query_cache,查询方式:show variables like '%query_cache%',如果数据更新会重新缓存。

    2、如果mysql使用的数据引擎是innodb那么第一次查询走数据文件,第二次buffer_pool也比查询数据文件要快。

    Sql语句第一次查询慢的原因不仅仅是因为执行计划没有被缓存这么简单,有时候你会发现Sql语句重用了执行计划,但是第一次查询还是很慢。

    最主要的原因是第一次查询的时候,mysql会将查询出的部分数据和索引从磁盘加载到内存作为缓存,而第二次查询的时候就直接从内存缓存中拿出数据了,自然要比从磁盘上加载数据快很多。

    mysql 会定期清除缓存,所以一段Sql语句如果长期不执行后,就需要从磁盘从新加载数据。

    设置缓存大小:比如设置个20MB:SET GLOBAL QUERY_CACHE_SIZE=20000000; 

  • 相关阅读:
    [Java123] JDBC and Multi-Threading 多线程编程学习笔记
    3:2D装换 [ 重点 ]
    2:属性选择器 + 结构伪类选择器 + 伪元素
    1:新增 H5 常用属性
    day2
    代码实操第一天
    1 滑动门
    css高级技巧
    11:网页布局总结
    10:定位
  • 原文地址:https://www.cnblogs.com/halo623/p/13684368.html
Copyright © 2011-2022 走看看