社区
MySQL
帖子详情
一个64位的linux操作系统,mysql是5.1,query_cache_size大约设置多少合适,设置标准是什么。
lanbaibai
2011-03-03 03:30:14
一个64位的linux操作系统,mysql是5.1,query_cache_size大约设置多少合适,设置标准是什么。
...全文
1279
5
打赏
收藏
一个64位的linux操作系统,mysql是5.1,query_cache_size大约设置多少合适,设置标准是什么。
一个64位的linux操作系统,mysql是5.1,query_cache_size大约设置多少合适,设置标准是什么。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
aleng18
2011-03-07
打赏
举报
回复
就是默认不缓存,读多写少的手动开缓存,蹲守在服务器上调一下,看n天。
rucypli
2011-03-04
打赏
举报
回复
以上zz MySQL性能调优与架构设计
rucypli
2011-03-04
打赏
举报
回复
虽然Query Cache 的使用会存在一些负面影响,但是我们也应该相信其存在是必定有一定价值。我
们完全不用因为Query Cache 的上面三个负面影响就完全失去对Query Cache 的信心。只要我们理解了
Query Cache 的实现原理,那么我们就完全可以通过一定的手段在使用Query Cache 的时候扬长避短,重
发发挥其优势,并有效的避开其劣势。
首先,我们需要根据Query Cache 失效机制来判断哪些表适合使用Query 哪些表不适合。由于Query
Cache 的失效主要是因为Query 所依赖的Table 的数据发生了变化,造成Query 的Result Set 可能已经
有所改变而造成相关的Query Cache 全部失效,那么我们就应该避免在查询变化频繁的Table 的Query 上
使用,而应该在那些查询变化频率较小的Table 的Query 上面使用。MySQL 中针对Query Cache 有两个专
用的SQL Hint(提示):SQL_NO_CACHE 和SQL_CACHE,分别代表强制不使用Query Cache 和强制使用
Query Cache。我们完全可以利用这两个SQL Hint,让MySQL 知道我们希望哪些SQL 使用Query Cache 而
哪些SQL 就不要使用了。这样不仅可以让变化频繁Table 的Query 浪费Query Cache 的内存,同时还可以
减少Query Cache 的检测量。
其次,对于那些变化非常小,大部分时候都是静态的数据,我们可以添加SQL_CACHE 的SQL Hint,
强制MySQL 使用Query Cache,从而提高该表的查询性能。
最后,有些SQL 的Result Set 很大,如果使用Query Cache 很容易造成Cache 内存的不足,或者将
之前一些老的Cache 冲刷出去。对于这一类Query 我们有两种方法可以解决,一是使用SQL_NO_CACHE 参
数来强制他不使用Query Cache 而每次都直接从实际数据中去查找, 另一种方法是通过设定
“query_cache_limit”参数值来控制Query Cache 中所Cache 的最大Result Set ,系统默认为
1M(1048576)。当某个Query 的Result Set 大于“query_cache_limit”所设定的值的时候,Query
Cache 是不会Cache 这个Query 的。
rucypli
2011-03-04
打赏
举报
回复
QueryCache 之后所带来的负面影响:
a) Query 语句的hash 运算以及hash 查找资源消耗。当我们使用Query Cache 之后,每条SELECT
类型的Query 在到达MySQL 之后,都需要进行一个hash 运算然后查找是否存在该Query 的
Cache,虽然这个hash 运算的算法可能已经非常高效了,hash 查找的过程也已经足够的优化
了,对于一条Query 来说消耗的资源确实是非常非常的少,但是当我们每秒都有上千甚至几千
条Query 的时候,我们就不能对产生的CPU 的消耗完全忽视了。
b) Query Cache 的失效问题。如果我们的表变更比较频繁,则会造成Query Cache 的失效率非常
高。这里的表变更不仅仅指表中数据的变更,还包括结构或者索引等的任何变更。也就是说我
们每次缓存到Query Cache 中的Cache 数据可能在刚存入后很快就会因为表中的数据被改变而被
清除,然后新的相同Query 进来之后无法使用到之前的Cache。
c) Query Cache 中缓存的是Result Set ,而不是数据页,也就是说,存在同一条记录被Cache 多
次的可能性存在。从而造成内存资源的过渡消耗。当然,可能有人会说我们可以限定Query
Cache 的大小啊。是的,我们确实可以限定Query Cache 的大小,但是这样,Query Cache 就很
容易造成因为内存不足而被换出,造成命中率的下降。
croso
2011-03-03
打赏
举报
回复
这个cache最好不要用,query_cache_type建议设置成2。 对需要的query用显式的命令来用cache。 你的内存多大?
mysql
Out of memory (Needed 16777224 bytes)的错误解决
Out of memory (Needed 16777224 bytes)的错误解决 看看手册: [url]http://dev.
mysql
.com/doc/refman/
5.1
/en/memory-storage-engine.html[/url] 开始我更改了
query
_
cache
_
size
的值。 好像也不行。 之后 增大
query
_...
mysql
之如何使用缓存
当有很多相同的查询被执行了多次的时候,这些查询结果会被放到
一个
缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。 1、查看缓存是否开启 show variables like '%
query
_
cache
%'; have_...
Unknown system variable ‘
query
_
cache
_
size
‘
Unknown system variable '
query
_
cache
_
size
'
JDBC连接
MySQL
报错Unknown system variable ‘
query
_
cache
_
size
‘
JDBC连接
MySQL
报错Unknown system variable ‘
query
_
cache
_
size
’ 网上查了原因是
mysql
-connecter-java的版本过低,很显然是数据库驱动程序与数据库版本不对应 解决办法: 如 mybatis使用
mysql
-
5.1
.14的驱动程序,...
mycat链接
mysql
8报Unknown system variable ‘
query
_
cache
_
size
‘
mysql
8需要修改加密方式
mysql
_native_password。 更换JDBC驱动jar为
mysql
-connector-java-8.XXX.jar。 修改schema.xml文件,dbDriver=“jdbc” ,url为链接字符串。 修改server.xml文件,1。 其实以上几点网上都能...
MySQL
56,679
社区成员
56,709
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章