清空mysql 查询缓存的可行方法

对一条sql进行优化时,发现原本很慢的一条sql(将近1分钟) 在第二次运行时, 瞬间就完成了(0.00sec)

这是因为mysql对同一条sql进行了缓存,服务器直接从上次的查询结果缓存中读取数据,而不是重新分析、执行sql。

可通过如下方法清空查询缓存

reset query cache;

(0)

相关推荐

  • MySQL高速缓存启动方法及参数详解(query_cache_size)

    MySQL query cache从4.1版本开始提供了,不过值今天本人才对其进行研究.默认配置下,MySQL的该功能是没有启动的,可能你通过show variables like '%query_cache%';会发现其变量have_query_cache的值是yes,MYSQL初学者很容易以为这个参数为YES就代表开启了查询缓存,实际上是不对的,该参数表示当前版本的MYSQL是否支持Query Cache,实际上是否开启查询缓存是看另外一个参数的值:query_cache_size ,该值为

  • MySQL优化之缓存优化

    高兴的是有博友mark了我的文章.我知道mark之后,很少会再来继续关注的.但是从侧面说明了在博友点开博客的同时,他感觉这篇博客是有价值的,是能够弥补他的知识欠缺.一篇博客最重要的是对自己有用,如果再对别人有用,那是最好的结果.我坚持写博客的目的是为了当自己遗忘知识点的时候,能够最快的找到靠谱的解决方案.当自己的归纳的知识,再记起来就会遗忘的慢一点,等时间久了,这部分知识终于化成了自己脱口而出的话,那就再也不怕遗忘了.这篇博客将继续讲MySQL的内容,这篇讲缓存优化,讲的过程也是我学习的过程.

  • MySQL DBA教程:Mysql性能优化之缓存参数优化

    数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所以,要优化数据库,首先第一步需要优化的就是 IO,尽可能将磁盘IO转化为内存IO.本文先从 MySQL 数据库IO相关参数(缓存参数)的角度来进行IO优化: 一.query_cache_size/query_cache_type (global)    Query cache 作用于整个 MySQL Inst

  • 使用Memcache缓存mysql数据库操作的原理和缓存过程浅析

    对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层,数据访问不可能吃得消,对于一般网站,只要具备独立的服务器,完全可以通过配置Memcache提高网站访问速度和减少数据库压力,这里主要讨论一下Memcache和MySQL数据库交互过程的流程关系,了解Memcache的中间缓存层作用,从而深入了解Memcache机制原理. Memcache和MySQL交互流程图 如上图,传统的查询方法是直接查询数据库,数据库将结果返回给查询语句,而当有Memcache中间缓存层

  • 浅析MySQL内存的使用说明(全局缓存+线程缓存)

    首先我们来看一个公式,MySQL中内存分为全局内存和线程内存两大部分(其实并不全部,只是影响比较大的 部分): 复制代码 代码如下: per_thread_buffers=(read_buffer_size+read_rnd_buffer_size+sort_buffer_size+thread_stack+join_buffer_size+binlog_cache_size+tmp_table_size)*max_connectionsglobal_buffers=innodb_buffer_

  • MySQL优化之缓存优化(续)

    MySQL 内部处处皆缓存,等什么时候看了MySQL的源码,再来详细的分析缓存的是如何利用的.这部分主要将各种显式的缓存优化: 查询缓存优化 结果集缓存 排序缓存 join 连接缓存 表缓存Cache 与表结构定义缓存Cache 表扫描缓存buffer MyISAM索引缓存buffer 日志缓存 预读机制 延迟表与临时表 1.查询缓存优化 查询缓存不仅将查询语句结构缓存起来,还将查询结果缓存起来.一段时间内,如果是同样的SQL,则直接从缓存中读取结果,提高查找数据的效率.但当缓存中的数据与硬盘中

  • mysql 设置查询缓存

    可将如下语句 query_cache_size = 268435456 query_cache_type = 1 query_cache_limit = 1048576 存放到/etc/my.cnf文件的[mysqld]下 然后重启mysql数据库 service mysqld restart 就会启动mysql的缓存机制Query Cache. 在使用中,查询缓存会存储一个 SELECT 查询的文本与被传送到客户端的相应结果. 如果之后接收到一个同样的查询,服务器将从查询缓存中检索结果,而不是

  • mysql的查询缓存说明

    对mysql查询缓存从五个角度进行详细的分析:Query Cache的工作原理.如何配置.如何维护.如何判断查询缓存的性能.适合的业务场景分析. 工作原理 查询缓存的工作原理,基本上可以概括为:缓存SELECT操作或预处理查询(注释:5.1.17开始支持)的结果集和SQL语句:新的SELECT语句或预处理查询语句,先去查询缓存,判断是否存在可用的记录集,判断标准:与缓存的SQL语句,是否完全一样,区分大小写: 查询缓存对什么样的查询语句,无法缓存其记录集,大致有以下几类:查询语句中加了SQL_N

  • MySQL缓存的查询和清除命令使用详解

    Mysql 查询缓存 查询缓存的作用就是当查询接收到一个和之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询.这样就大大提高了性能,节省时间. 1.配置查询缓存 修改配置文件,修改[mysqld]下的query_cache_size和query_cache_type(如果没有则添加).其中query_cache_size表示缓存的大小,而query_cache_type有3个值,表示缓存那种类  型的select结果集,query_cache_type各个值如下: 0

  • 清空mysql 查询缓存的可行方法

    对一条sql进行优化时,发现原本很慢的一条sql(将近1分钟) 在第二次运行时, 瞬间就完成了(0.00sec) 这是因为mysql对同一条sql进行了缓存,服务器直接从上次的查询结果缓存中读取数据,而不是重新分析.执行sql. 可通过如下方法清空查询缓存 reset query cache;

  • CI框架数据库查询缓存优化的方法

    本文实例讲述了CI框架数据库查询缓存优化的方法.分享给大家供大家参考,具体如下: CI框架中有个比较好的查询优化,就是数据库缓存优化 1.开启缓存 //在application/config.php中开启 $db['default']['cache_on'] = TRUE; //在application/config.php中开启 $db['default']['cachedir'] = './cache'; //并在对应的目录中加一个可写缓存目录cache 2. 在对应的查询中开启缓存语句 /

  • MySQL查询缓存的小知识

    前言 我们知道,缓存的设计思想在RDBMS数据库中无处不在,就拿号称2500w行代码,bug堆积如山的Oracle数据库来说,SQL的执行计划可以缓存在library cache中避免再次执行相同SQL发生硬解析(语法分析->语义分析->生成执行计划),SQL执行结果缓存在RESULT CACHE内存组件中,有效的将物理IO转化成逻辑IO,提高SQL执行效率. MySQL的QueryCache跟Oracle类似,缓存的是SQL语句文本以及对应的结果集,看起来是一个很棒的Idea,那为什么从My

  • MySQL查询用户权限的方法总结

    介绍两种查看MySQL用户权限的两种方法 1. 使用MySQL grants命令 mysql> show grants for username@localhost; +---------------------------------------------------------------------+ | Grants for root@localhost | +---------------------------------------------------------------

  • 详解mysql查询缓存简单使用

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一. 当我们开启Mysql的查询缓存,当执行完全相同的SQL语句的时候,服务器就会直接从缓存中读取结果.当数据被修改, 之前的缓存会失效,所以修改比较频繁的表不适合做查询缓存. 一.查询

  • MySQL系列之九 mysql查询缓存及索引

    目录 一.MySQL的架构 二.查询缓存(Query Cache) 哪些查询可能不会被缓存: 查询缓存相关的服务器变量: 查询缓存相关的状态变量: 三.索引 1.索引类型: 2.高性能索引策略: 3.索引的优化建议 4.索引的创建与删除 四.EXPLAIN命令 五.SQL语句性能优化 一.MySQL的架构 连接器 连接池,安全认证.线程池.连接限制.检查内存.缓存 SQL接口 DML.DDL SQL解析器,对SQL语句的权限检查.解析为二进制程序 优化器,优化访问路径 缓存cache,buffe

  • MySQL查询缓存优化示例详析

    目录 一.概述 二.查询优化内容 1.查询缓存的原理 2.查询缓存的优缺点 3.不能应用查询缓存的内容 4.查询缓存相关的服务器变量 5.SELECT语句的缓存控制 6.查询缓存相关的状态变量 7.查询的优化的检查路线 8.命中率和内存使用率估算 9.版本差异 三.总结 一.概述 在日常使用数据库中,80%的数据请求都是查询,而余下的20%是更新或者增加数据.如何提升查询性能,便是提高数据库处理能力的关键. 二.查询优化内容 1.查询缓存的原理 查询的路线图: 缓存SELECT操作或预处理查询的

  • mysql查询上下级机构的方法实例

    目录 前言 思路: (1)准备测试数据表 (2)查询指定机构的所有下级机构(包括自身) (3)查询指定机构的所有上级机构(包括自身) 总结 前言 查询上下级机构,这个功能可能会在日常工作中遇到,如果使用的oracle数据库,那就很简单,只需要使用oracle提供的层级查询即可实现.如果使用的mysql数据库,那么就需要自己实现这个功能.下面就介绍mysql实现上下级机构查询. 思路: 自定义mysql方法 利用mysql中的[FIND_IN_SET][group_concat]两个方法 (1)准

  • PHP访问MySQL查询超时处理的方法

    目前两个客户端扩展库连接超时可以设置选项来操作,比如mysqli: 复制代码 代码如下: <?php //创建对象 $mysqli = mysqli_init(); //设置超时选项 $mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5); //连接 $mysqli->real_connect('localhost', 'my_user', 'my_password', 'world'); //如果超时或者其他连接失败打印错误信息 if (mysq

  • 解决MySQl查询不区分大小写的方法讲解

    问题 最近,在用SSH框架完成一个实践项目时,碰到了一个莫名其妙的Bug困扰了我好久,最后终于解决,记录如下. 问题:同学在测试系统的时候突然发现,数据库保存的账户本来应该是admin,结果该同学用Admin账户居然登录成功了-- --EXM???这样也行?好吧,我还是查找这个Bug发生的原因吧.然后就是各种排查程序的过程,找来找去也没发现什么问题.终于想到,不用hql,自己写sql语句在数据库里面直接查询试试,结果果然发现了问题所在: select * from user where user

随机推荐