`
xiaoqiang6775
  • 浏览: 32528 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

提高 MySql查询性能-打开和设置查询缓存

 
阅读更多

从 MySQL4开始,出现了QueryCache查询缓存, 如果使用了QueryCache,当查询接收到一个和之前同样的查询, 服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询。 这样就大大提高了性能,节省时间,非常有用。 打开查询缓存,是通过几个步骤来设

从 MySQL4开始,出现了QueryCache查询缓存,

 

如果使用了QueryCache,当查询接收到一个和之前同样的查询,

服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询。

这样就大大提高了性能,节省时间,非常有用。

打开查询缓存,是通过几个步骤来设置的,例如:虽然你设置Mysql允许查询缓存,但

是如果你设置的查询缓存大小为了0,这和没有允许没什么区别。

所以必须是几个步骤的设置才能真正打开查询缓存这个功能。

下面我用 mysql6.0 最为演示最常用的设置查询缓存

第一: query_cache_type 使用查询缓存的方式

一般,我们会把 query_cache_type 设置为 ON,默认情况下应该是ON

mysql> select @@query_cache_type;
+--------------------+
| @@query_cache_type |
+--------------------+
| ON |
+--------------------+
这样 当我们执行 select id,name from tableName; 这样就会用到查询缓存。

在 query_cache_type 打开的情况下,如果你不想使用缓存,需要指明
select sql_no_cache id,name from tableName;

当然也可以禁用查询缓存: mysql> set session query_cache_type=off;
这里我们不讨论这个,我们演示常用的设置。

第二: 系统变量 have_query_cache 设置查询缓存是否可用

mysql> show variables like 'have_query_cache';

+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| have_query_cache | YES |
+------------------+-------+
上面的显示,表示设置查询缓存是可用的。

第三: 系统变量 query_cache_size

表示查询缓存大小,也就是分配内存大小给查询缓存,如果你分配大小为0,

那么 第一步 和 第二步 起不到作用,还是没有任何效果。

mysql> select @@global.query_cache_size;

+---------------------------+
| @@global.query_cache_size |
+---------------------------+
| 16777216 |
+---------------------------+
上面是 mysql6.0设置默认的,之前的版本好像默认是0的,那么就要自己设置下。

设置 set @@global.query_cache_size=1000000; 这里是设置1M左右,900多K。

再次查看下 select @@global.query_cache_size;

+---------------------------+
| @@global.query_cache_size |
+---------------------------+
| 999424 |
+---------------------------+
显示我们设置新的大小,表示设置成功。

第四: query_cache_limit 控制缓存查询结果的最大值

例如: 如果查询结果很大, 也缓存????这个明显是不可能的。

MySql 可以设置一个最大的缓存值,当你查询缓存数结果数据超过这个值就不会
进行缓存。缺省为1M,也就是超过了1M查询结果就不会缓存。

mysql> select @@global.query_cache_limit;

+----------------------------+
| @@global.query_cache_limit |
+----------------------------+
| 1048576 |
+----------------------------+

这个是默认的数值,如果需要修改,就像设置缓存大小一样设置,使用set
重新指定大小。

分享到:
评论

相关推荐

    提高MySql查询性能 - 打开和设置查询缓存 视频教程

    提高MySql查询性能 - 打开和设置查询缓存 视频教程 京华志&精华志出品 希望大家互相学习,互相进步 支持CSDN 支持微软 主要包括C# ASP.NET SQLDBA 源码 毕业设计 开题报告 答辩PPT等等好多知识

    MySQL-概述-安装配置 mysql-8.0.31-winx64

    5. **性能优化**:通过调整SQL语句、索引优化、配置参数调整等方式,可以提高MySQL的性能。 总的来说,MySQL 8.0.31为Windows用户提供了稳定且高效的数据库服务。了解并熟练掌握MySQL的安装、配置和管理,对于任何...

    MySQL驱动 mysql-connector-net-6.4.0

    5. **参数化查询**:使用PreparedStatement对象,防止SQL注入攻击,提高查询性能。 6. **事件和通知**:支持数据库事件和查询结果的异步通知,可以实现数据更改时的实时响应。 7. **元数据获取**:可以获取数据库...

    mysql性能优化-慢查询分析、优化索引和配置.doc

    ### MySQL性能优化详解 #### 一、优化概述 MySQL作为一种广泛使用的开源关系型数据库管理系统,在很多应用场景中都可能遇到性能瓶颈的问题。常见的性能瓶颈主要分为两大类:**CPU瓶颈**和**I/O瓶颈**。 - **CPU...

    mysql-connector-java-5.1.46-bin.jar

    - 使用连接池(如C3P0、HikariCP)管理数据库连接,避免频繁的打开和关闭连接,提高系统效率。 9. **安全性**: - 为了安全,不建议在代码中硬编码数据库凭据(用户名和密码)。可以使用环境变量、配置文件或安全...

    mysql-5.5.25-win32.msi

    6. **查询优化器改进**:查询优化器更智能,能更准确地选择执行计划,从而提高查询速度。 二、安装MySQL 5.5.25-win32的过程: 1. **下载与准备**:首先,从官方渠道下载`mysql-5.5.25-win32.msi`安装包,确保文件...

    MySQL驱动 mysql-connector-net-6.4.6

    此版本可能包含了性能优化、错误修复以及对新特性的支持,比如对特定MySQL服务器版本的兼容性改进。 使用mysql-connector-net-6.4.6,你可以: 1. 连接管理:创建并管理到MySQL服务器的连接,包括设置连接字符串...

    mysql-connector-java-8.0.20

    - **连接管理**:创建、打开、关闭和管理到MySQL服务器的连接。 - **SQL语句执行**:支持预编译的SQL语句,批处理操作,以及事务处理。 - **结果集处理**:高效地获取和处理查询结果,支持多种数据类型和复杂查询...

    MySQL缓存研究

    研究结论通常会总结优化缓存对MySQL性能提升的具体效果,指出哪些策略最有效,以及在特定工作负载下如何选择最佳的缓存设置。 7. 总结 通过对MySQL缓存的深入研究,我们可以理解缓存在数据库性能中的关键作用,学习...

    mysql-connector-java--8.0.17.zip

    6. **优化与安全**:为了提高性能,应使用预编译的`PreparedStatement`而非`Statement`,因为它可以缓存SQL语句。同时,务必使用参数化查询来防止SQL注入攻击。 7. **关闭资源**:操作完成后,记得关闭打开的连接、...

    免费资源mysql-5.5.15-winx64

    1. **性能提升**:MySQL 5.5通过优化查询处理器、InnoDB存储引擎和并发处理能力,显著提高了数据读写速度,使其更适合高流量和大数据量的应用场景。 2. **InnoDB增强**:MySQL 5.5默认使用InnoDB存储引擎,支持事务...

    MySQL驱动 mysql-connector-net-6.4.2

    对于大型项目,还应该了解如何配置连接池,以提高并发性能和资源利用率。 总之,MySQL-Connector/Net 6.4.2是.NET开发者连接MySQL数据库的关键工具,它提供了全面的功能和良好的性能,使得.NET应用能够充分利用...

    mysql性能优化-慢查询分析、优化索引和配置.docx

    MySQL性能优化是一个重要的主题,尤其是对于处理大量数据的系统来说,高效的数据库操作直接影响到应用程序的响应速度和用户体验。本文主要围绕慢查询分析、优化索引和配置调整三个方面展开。 一、优化概述 优化...

    mysql常用性能查询语句

    MySQL 常用性能查询语句 MySQL 是一种关系型数据库管理系统,提供了多种方式来查询和优化数据库性能。...通过这些性能查询语句,可以更好地了解和优化 MySQL 数据库的性能,提高数据库的稳定性和性能。

    mysql-installer-community-5.7.29.0.msi.7z

    1. **性能优化**:MySQL 5.7通过InnoDB存储引擎的改进提高了查询处理速度,例如支持更大的InnoDB缓存池,更高效的索引处理,以及并行查询优化。 2. **JSON支持**:添加了对JSON数据类型的内置支持,允许存储和检索...

    mysql-connector-odbc-noinstall-5.3.4-win32.zip

    4. **性能优化**:通过使用缓存、批处理和连接池等技术,驱动程序可以提高数据访问效率,减少网络延迟。 5. **安全性**:支持 SSL 加密,确保数据在传输过程中的安全,同时还可以实现基于角色的权限控制,限制对...

    释放MySQL潜能:深入配置缓存机制

    MySQL支持多种缓存机制,包括查询缓存、InnoDB缓存、表缓存和键缓存。 ##### 1. 查询缓存 - **定义**:查询缓存存储了SELECT查询的结果集,当相同的查询再次执行时,可以直接从缓存中获取结果,无需重新执行查询。 ...

    【荐】mysql服务性能优化—my.cnf_my.ini配置说明详解(16G内存)

    - **影响**:合理的值能显著提升表的打开速度,进而提高查询性能。需要注意的是,此值需根据实际应用的连接数和复杂度灵活调整。 - **external-locking=FALSE**: - **作用**:关闭外部锁定机制。 - **影响**:...

    mysql-5.6.30-winx64.zip

    1. **性能提升**:MySQL 5.6引入了InnoDB存储引擎的性能优化,如InnoDB Buffer Pool实例化、更高效的查询缓存、并行复制等,显著提升了数据库的读写速度。 2. **高可用性**:支持半同步复制,确保数据在主从复制中的...

Global site tag (gtag.js) - Google Analytics