MySQL数据库基础知识11,查询缓存

一、查询缓存是什么?

MySQL查询缓存保存查询返回的完整结果,当查询命中该缓存,MySQL会立刻返回结果,跳过解析、优化和执行过程。

在这里插入图片描述
查询缓存系统会跟踪查询中涉及的每个表,如果这些表发生变化,那么和这个表相关的所有的缓存数据都将失效,这种机制效率看起来比较低,因为数据表变化时可能对查询结果并没有影响,但是这种简单实现代价很小,而这点对于一个非常繁忙的系统来说非常重要。

二、MySQL如何判断缓存命中

判断是否命中时,MySQL不会解析,而是直接使用SQL语句和客户端发送过来的其它原始信息。任何字符上的不同,例如空格、注释,丢回导致缓存的不命中。通常使用统一的编码规则是一个好的习惯,会让你的系统运行的更快。

当查询语句中有一些不确定的数据时,不会被缓存,比如函数now()。实际上,如果缓存中包含任何用户自定义函数、存储函数、用户变量、临时表、MySQL系统表、或者任何包含列级别权限的表,都不会被缓存。

三、使用查询缓存需谨慎

打开查询缓存对读和写操作都会带来额外的消耗:

  1. 读查询在执行之前要先检查是否命中缓存;
  2. 如果读查询可以被缓存,那么当完成执行后,MySQL如果发现缓存中没有这个查询,会将其结果存入查询缓存,这会带来额外的系统消耗;
  3. 对写操作也有影响,
  • 39
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 31
    评论
MySQL是一种开源的关系型数据库管理系统,是Web开发中最常用的数据库之一。以下是学习MySQL基础知识的几个关键点: 1. 数据库基础知识 你需要了解以下的基础知识: - 数据库的概念和特点 - 数据库管理系统(DBMS)和关系型数据库管理系统(RDBMS) - SQL语言的基础知识,包括SELECT、INSERT、UPDATE和DELETE等基本操作 2. 数据库设计 在设计数据库时,你需要考虑以下问题: - 数据库范式:数据库范式是一种规范化的设计方法,用于减少数据冗余和提高数据一致性。 - 数据库表的设计:如何分解数据,创建关联表以及定义主键和外键等。 - 数据库索引:索引可以提高数据库查询效率,你需要了解如何创建索引并选择正确的索引类型。 3. 数据库管理 在管理数据库时,你需要了解以下的内容: - 数据库安装和配置 - 数据库备份和恢复 - 数据库性能调整,包括查询优化、索引优化、缓存优化等。 - 数据库安全,包括用户管理、权限管理和数据加密等。 4. 数据库编程 在应用程序中,你需要使用编程语言来访问数据库。以下是一些你需要了解的内容: - 数据库连接:如何连接到数据库并执行SQL查询。 - 数据库事务:如何使用事务来保证数据的一致性。 - 数据库异常处理:如何处理数据库操作中可能出现的异常。 5. MySQL工具和技术 MySQL有许多工具和技术,可以帮助你更有效地管理和使用数据库,例如: - MySQL Workbench:一个用于管理和开发MySQL数据库的集成开发环境(IDE)。 - phpMyAdmin:一个用于管理MySQL数据库的Web界面。 - MySQL Cluster:一个用于处理大数据和高可用性需求的分布式数据库系统。 - MySQL Replication:一个用于复制MySQL数据的技术,用于实现数据备份和负载均衡等。 以上是MySQL基础知识的一些关键点,掌握这些知识可以帮助你更好地理解和使用MySQL数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值