Mysql 数据库缓存cache功能总结[转]
mysql cache功能分析:
1 mysql的cache功能的key的生成原理是:把select语句按照一定的hash规则生成唯一的key,select的结果生成value,即 key=>value。所以对于cache而言,select语句是区分大小写的,也区分空格的。两个select语句必须完完全 全一致,才能够获取到同一个cache。
2 生成cache之后,只要该select中涉及到的table有任何的数据变动(insert,update,delete操作等),相 关的所有cache都会被删除。因此只有数据很少变动的table,引入mysql 的cache才较有意义。关于这方面的测试,可以参考:《Query Cache,看上去很美》一文。
所以,mysql的cache功能只适用于下列场合:数据变动较少,select较多的table。
那么。在复杂的系统中,如何使用mysql的cache功能呢,基本方法如下:
配置query_cache_type,同时改写程序。
query_cache_type 0 代表不使用缓冲, 1 代表使用缓冲,2 代表根据需要使用。
设置 1 代表缓冲永远有效,如果不需要缓冲,就需要使用如下语句:
SELECT SQL_NO_CACHE * FROM my_table WHERE …
如果设置为 2 ,需要开启缓冲,可以用如下语句:
SELECT SQL_CACHE * FROM my_table WHERE …
So,最简单又可靠的做法是:把query_cache_type设置为2,然后在需要提高select速度的地方,使用:
SELECT SQL_CACHE * FROM…
的方式进行SELECT。
【mysql cache调试笔记】
1 可以使用下列命令开启mysql的select cache功能:
SET GLOBAL query_cache_size = 102400000;
因为当query_cache_size默认为0时,是不开启cache功能的。
2 调试:
查看cache的设置:
show variables like ‘%query_cache%’;
性能监控:
show status like ‘%Qcache%’;
3 mysql cache的清理:
可以使用FLUSH QUERY CACHE语句来清理查询缓存碎片以提高内存使用性能。该语句不从缓存中移出任何查询。
RESET QUERY CACHE语句从查询缓存中移出所有查询。FLUSH TABLES语句也执行同样的工作。
分享到:
相关推荐
您可能感兴趣的文章:MySQL优化之缓存优化mysql的查询缓存说明使用Memcache缓存mysql数据库操作的原理和缓存过程浅析浅析MySQL内存的使用说明(全局缓存+线程缓存)MySQL高速缓存启动方法及参数详解(query_cache_...
MySQL数据库是 IO 密集型的程序,和其他数据库一样,主要功能是数据的持久化以及数据的管理工作。本文侧重通过优化MySQL 数据库缓存参数如查询缓存,表缓存,日志缓存,索引缓存,innodb缓存,插入缓存,以及连接...
另外Cache Server拥有强大的编程能力,拥有业内功能最强大的内存数据库脚本,使Cache Server不只作为数据的高速缓存服务器,更能够实现复杂的业务逻辑,通过编写数据库脚本和存储过程实现以前通过C/C++编程才能实现...
在平时被问及最多的问题就是关于MySQL数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能...本文先从MySQL数据库IO相关参数(缓存参数)的角度来看看可以通过哪些参数进行IO优化:Querycache作用于整个MySQ
# MySQL每打开一个表,都会读入一些数据到table_open_cache缓存中,当MySQL在这个缓存中找不到相应信息时,才会去磁盘上读取。默认值64 # 假定系统有200个并发连接,则需将此参数设置为200*N(N为每个连接所需的文件...
解决方案-mysql-redis-cache-simple
会发现其变量have_query_cache的值是yes,MYSQL初学者很容易以为这个参数为YES就代表开启了查询缓存,实际上是不对的,该参数表示当前版本的MYSQL是否支持Query Cache,实际上是否开启查询缓存是看另外一个参数的值:...
京东自研的C++高性能数据缓存服务,兼容MySQL协议,支持部分SQL语法,可作为内存缓存使用。DTC是一个分布式表级缓存系统,...Connector - 此组件为缓存与持久化存储数据库(例如:MySql)之间提供连接和数据传输功能。
query_cache_size = 268435456 query_cache_type = 1 query_cache_limit = 1048576 存放到/etc/my.cnf文件的[mysqld]下 然后重启mysql数据库 service mysqld restart 就会启动mysql的缓存机制Query Cache。...
数据访问不可能吃得消,对于一般网站,只要具备独立的服务器,完全可以通过配置Memcache提高网站访问速度和减少数据库压力,这里主要讨论一下Memcache和MySQL数据库交互过程的流程关系,了解Memcache的中间缓存层...
1. 优化你的MySQL查询缓存在MySQL服务器上进行查询,可以启用高速查询缓存。让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一。当同一个查询被执行多次时,如果结果是从缓存中提取,那是相当快的。但主要的...
数据库属于 IO 密集型的应用程序,其主要职责...一、query_cache_size/query_cache_type (global) Query cache 作用于整个 MySQL Instance,主要用来缓存 MySQL 中的 ResultSet,也就是一条SQL语句执行的结果集,所以
WP Fastest Cache 是一个多功能缓存插件,通过创建HTML文件来帮助减少您网站的页面加载时间,由于 WordPress 网站是通过 PHP 和 MySQL数据库呈现的,因此每次从服务器请求页面时都需要使用 RAM 和 CPU,会减慢加载...
节点数据库缓存 for nodejs db cache module #require node -v >7.10 需要打开 --harmony #什么是? 基于mysql和redis数据库分离,分布式读写和二级缓存功能 #如何使用? 例如 -首先打开你的mysql和你的redis; ...
另外Cache Server拥有强大的编程能力,拥有业内功能最强大的内存数据库脚本,使Cache Server不只作为数据的高速缓存服务器,更能够实现复杂的业务逻辑,通过编写数据库脚本和存储过程实现以前通过C/C++编程才能实现...
1.优化你的MySQL查询缓存 在MySQL服务器上进行查询,可以启用高速查询缓存。让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一。当同一个查询被执行多次时,如果结果是从缓存中提取,那是相当快的。 但主要的...
Mysql 查询缓存 查询缓存的作用就是当查询接收到一个和之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询。这样就大大提高了性能,节省时间。 1.配置查询缓存 修改配置文件,修改...
对mysql查询缓存从五个角度进行详细的分析:Query Cache的工作原理、如何配置、如何维护、如何判断查询缓存的性能、适合的业务场景分析。 工作原理 查询缓存的工作原理,基本上可以概括为:缓存SELECT操作或预处理...
更改后如下: innodb_buffer_pool_size=576M ->256M InnoDB引擎缓冲区占了大头,首要就是拿它开刀 query_cache_size=100M ->16M 查询缓存 tmp_table_size=102M ->64M 临时表大小 ...2G内存的MYSQL数据库服务器 m
MySQL服务器无需安装任何Agent,只需在监控WEB界面配置相关数据库信息,启动监控进程后,即可对上百台MySQL数据库的状态、连接数、QTS、TPS、数据库流量、复制、性能慢查询等进行时时监控。并能在数据库偏离设定的...