打开mysql缓存
从 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缓存的深入研究,我们可以理解缓存在数据库性能中的关键作用,学习如何调整和优化缓存以适应不断变化的业务需求,从而提升系统的整体性能和响应时间。这不仅可以减轻数据库服务器的压力,还能为用户提供...
### Redis作为MySQL缓存服务器(公司内部培训资料) #### 一、Redis简介 Redis是一种开源的键值存储系统,主要用于高速缓存数据。与Memcached相比,虽然两者都基于内存进行数据存储以确保高效率,但Redis具备更...
在PHP编程中,连接并操作MySQL数据库是一项基本且重要的任务。这款PHP MySQL操作类提供了全面的功能,涵盖了数据的查询、更新、删除等操作,适用于初学者进行学习和实践,同时也为有经验的开发者提供了一个可自定义...
### MySQL基础操作详解 #### 一、MySQL安装与配置 **1. 解压缩** - 首先,需要下载MySQL的安装包。通常可以从官方网站或其他可靠的来源获取。 - 下载完成后,将安装包解压到指定目录,例如`C:\MySQL`。 **2. ...
首先,理解MySQL缓存的重要性至关重要。尽管启用查询缓存会带来一定的开销,如在查询开始前检查缓存、数据保存以及写入缓存时的额外计算,但这些开销通常远小于从磁盘读取数据的成本。尤其是对于那些重复执行的简单...
**PHP MySQL操作类详解** 在PHP开发中,与MySQL数据库进行交互是常见的需求。为了方便高效地处理数据库操作,开发者通常会封装一个MySQL操作类,如`PHP_DataSet`。这个类可以提供一系列的方法,包括连接数据库、...
配置文件通常位于`/etc/mysql/my.cnf`,可以在这里调整性能参数,如缓存大小、日志设置等。修改后需要重启服务使配置生效。 4. **连接MySQL** 使用`mysql`命令行客户端连接到MySQL服务器: ``` mysql -u root -...
在PHP编程中,MySQL数据库操作是常见的任务,用于存储、检索和管理数据。为了简化这些操作,开发者通常会创建自定义的数据库操作类。这样的类封装了与MySQL交互的复杂性,提供了一种更整洁、模块化的方式来处理...
标题提到的"php操作mysql",意味着我们将讨论如何在PHP中与MySQL数据库进行交互,特别是通过自定义的MySQL类实现数据查询、更新和删除等基本操作。 首先,让我们理解PHP与MySQL交互的基本步骤: 1. **建立连接**:...
对mysql查询缓存从五个角度进行详细的分析:Query Cache的工作原理、如何配置、如何维护、如何判断查询缓存的性能、适合的业务场景分析。 工作原理 查询缓存的工作原理,基本上可以概括为:缓存SELECT操作或预处理...
在高并发场景下,Memcached能够提供近乎实时的数据访问,因为它避免了磁盘I/O操作,而I/O通常是系统性能瓶颈的主要来源。 **工作原理** Memcached基于键值对存储,用户可以将数据以键值对的形式存入缓存,并通过键...
- 在自定义的缓存类中,实现基本的缓存操作方法,如`getId()`、`putObject()`等。 - 使用Jedis客户端操作Redis数据库,实现数据的存取逻辑。 ##### 2.2 自定义缓存实现详解 以`RedisCache`为例,该类需要实现`...
例如,创建表、插入数据、更新记录和删除记录等操作都可以通过调用相应的函数来完成。 接下来是Memcached,它是一个高性能的分布式内存对象缓存系统。在Go中,我们通常使用`github....
MySQL 数据库性能优化是DBA工作中的核心任务之一,尤其对于IO密集型的数据库系统,内存缓存的优化显得尤为重要。本教程将聚焦于MySQL的缓存参数优化,旨在通过调整相关参数,最大化利用内存资源,减少磁盘IO,从而...
MySQL的binlog(二进制日志)是数据库系统中至关重要的组件,它记录了所有对数据库进行修改的SQL语句,除了数据查询语句。binlog的主要功能在于支持数据库的主从复制和数据的增量恢复,确保数据的高可用性和一致性。...
它提供了事务处理、缓存、记录集等功能,对于复杂的应用程序来说,ADODB是很好的选择。 然后,Smarty是一个PHP模板引擎,它将应用程序逻辑与视图层分离,使得设计师可以独立于程序员工作。Smarty通过模板变量和控制...
本文将深入探讨如何在ASP.NET Core项目中利用Entity Framework Core(简称EF Core)来管理和操作MySQL数据库。 首先,让我们了解基础。ASP.NET Core是Microsoft推出的跨平台、高性能的开源框架,用于构建Web应用。...
综上所述,"hibernate和MySQL的jar"组合是Java Web开发中常见的技术栈,它简化了数据库操作,提高了开发效率。通过正确配置和使用这些jar文件,开发者可以构建出高效、易于维护的数据库驱动的应用程序。
MySQL的Binary Log(binlog)是一种记录所有对数据库进行更改操作的二进制日志,用于数据恢复、复制和监控数据库变化。Canal通过解析binlog,捕获数据库的变更事件。 2. **Canal工作原理** Canal工作时,首先连接...
5. **刷新**:在MySQL中,刷新通常用于更新数据库的缓存信息,如表结构或权限。`FLUSH`语句常用于此,例如刷新所有权限: ```sql FLUSH PRIVILEGES; ``` 或者刷新表的定义: ```sql FLUSH TABLES; ``` 在...