温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

数据库Cache怎么配置

发布时间:2026-08-30 08:24:46 来源:亿速云 阅读:82 作者:小樊 栏目:数据库

“数据库 Cache 怎么配置”这个问题比较宽泛,不同数据库、不同使用场景差别很大。下面我按常见数据库 + 核心配置思路给你一个实用指南,你可以再告诉我你用的是哪种数据库,我可以给你更精确的参数。


一、通用配置思路(所有数据库都适用)

1️⃣ 先明确 Cache 类型

数据库 Cache 通常包括:

  • 内存缓存(Buffer Pool / Cache Pool)
  • 查询缓存(Query Cache,部分数据库已废弃)
  • 操作系统缓存(OS Page Cache)
  • 应用层缓存(Redis / 本地缓存)

最常见的是 数据库自身的内存缓存


2️⃣ Cache 配置的核心原则

缓存大小不是越大越好
要为操作系统、连接、排序、临时表预留内存
监控命中率,而不是只看参数

通用公式:

数据库缓存 ≈ 总内存 × 50%~70%

二、不同数据库 Cache 配置示例


MySQL / MariaDB

1️⃣ InnoDB Buffer Pool(最重要)

innodb_buffer_pool_size = 4G

建议:

  • 专用数据库服务器:50%~70% 内存
  • 混合部署(Web + DB):30%~50%

查看命中率:

SHOW STATUS LIKE 'Innodb_buffer_pool_read%';

2️⃣ 查询缓存(不推荐新系统使用)

query_cache_type = 0
query_cache_size = 0

MySQL 8.0 已移除查询缓存


3️⃣ 连接与排序缓存

sort_buffer_size = 4M
join_buffer_size = 4M
read_buffer_size = 2M

⚠️ 不要全局设置过大,按连接数算内存。


✅ PostgreSQL

1️⃣ 共享缓存(Shared Buffers)

shared_buffers = 2GB

建议:

  • 25%~40% 内存
  • 不超过 8GB(除非你很懂)

2️⃣ 操作系统缓存

PostgreSQL 重度依赖 OS Page Cache,所以:

effective_cache_size = 6GB

3️⃣ 工作内存

work_mem = 16MB

用于排序、哈希,按并发算。


✅ Oracle

1️⃣ SGA(System Global Area)

ALTER SYSTEM SET sga_target = 8G;
ALTER SYSTEM SET sga_max_size = 8G;

2️⃣ Buffer Cache

ALTER SYSTEM SET db_cache_size = 4G;

✅ Redis(作为数据库缓存)

maxmemory 4gb
maxmemory-policy allkeys-lru

策略选择:

场景 策略
热点数据 allkeys-lru
会话缓存 volatile-ttl
严格不丢 noeviction

三、是否该用数据库 Cache?

场景 建议
热点数据 ✅ Redis
复杂查询 ✅ 数据库缓存
高并发读 ✅ 应用层缓存
写多读少 ❌ 减少缓存

四、如何判断是否配置合理?

关键指标

  • 缓存命中率
  • 磁盘 IO
  • 内存使用率
  • 查询延迟

MySQL 示例

SHOW ENGINE INNODB STATUS;

五、常见错误 ❌

  • 把 90% 内存给 Cache
  • 不考虑连接数
  • 盲目复制网上参数
  • 忽略慢查询

六、我可以继续帮你做什么?

你可以直接告诉我:

  1. 数据库类型 + 版本
  2. 服务器内存
  3. 专用数据库服务器 还是 混合部署
  4. 主要场景(读多 / 写多 / 高并发)

我可以帮你算一套可直接用的配置参数

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI