• 技术文章 >数据库 >mysql教程

    mysql的查询缓存说明_MySQL

    2016-06-01 13:23:47原创376
    bitsCN.com

    对mysql查询缓存从五个角度进行详细的分析:Query Cache的工作原理、如何配置、如何维护、如何判断查询缓存的性能、适合的业务场景分析。

    工作原理

    查询缓存的工作原理,基本上可以概括为:
    缓存SELECT操作或预处理查询(注释:5.1.17开始支持)的结果集和SQL语句;
    新的SELECT语句或预处理查询语句,先去查询缓存,判断是否存在可用的记录集,判断标准:与缓存的SQL语句,是否完全一样,区分大小写;

    查询缓存对什么样的查询语句,无法缓存其记录集,大致有以下几类:
    查询语句中加了SQL_NO_CACHE参数;
    查询语句中含有获得值的函数,包涵自定义函数,如:CURDATE()、GET_LOCK()、RAND()、CONVERT_TZ等;
    对系统数据库的查询:mysql、information_schema
    查询语句中使用SESSION级别变量或存储过程中的局部变量;
    查询语句中使用了LOCK IN SHARE MODE、FOR UPDATE的语句
    查询语句中类似SELECT …INTO 导出数据的语句;
    事务隔离级别为:Serializable情况下,所有查询语句都不能缓存;
    对临时表的查询操作;
    存在警告信息的查询语句;
    不涉及任何表或视图的查询语句;
    某用户只有列级别权限的查询语句;

    查询缓存的优缺点:

    不需要对SQL语句做任何解析和执行,当然语法解析必须通过在先,直接从Query Cache中获得查询结果;
    查询缓存的判断规则,不够智能,也即提高了查询缓存的使用门槛,降低其效率;
    Query Cache的起用,会增加检查和清理Query Cache中记录集的开销,而且存在SQL语句缓存的表,每一张表都只有一个对应的全局锁;

    配置

    是否启用mysql查询缓存,可以通过2个参数:query_cache_type和query_cache_size,其中任何一个参数设置为0都意味着关闭查询缓存功能,但是正确的设置推荐query_cache_type=0。

    query_cache_type
    值域为:0 -

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:工作原理 mysql 如何
    上一篇:mysql自动增量备份的实例方法(本地备份与远程备份)_MySQL 下一篇:linux mysql 报错:MYSQL:The server quit without updating PID_MySQL
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 深入了解MySQL中的join语句算法(优化方法介绍)• 聊聊MySQL的基础架构和日志系统• 实例详解MySQL占用内存过大解决方法• 一文聊聊MySQL中的自增主键• 深入解析MySQL中的查询优化器(工作原理详解)
    1/1

    PHP中文网