一、参数分类:这些类型必须分清
KingbaseES参数按生效场景分为6大类型,配置前务必先确认类型!
分类 | 生效场景 | 典型案例 |
internal | 仅内部修改,不可配置 | 编译参数 |
kingbase | 必须重启数据库生效 | shared_buffers |
sighup | 重载配置即生效 | work_mem |
superuser | 仅超级用户可设置 | client_encoding |
backend | 新建会话生效 | DateStyle |
superuser-backend | 需超级用户+新建会话生效 | statement_timeout |
二、参数查看:三种姿势任你选
方法1 视图查询 - 全景扫描
-- 查看所有参数默认值
SELECT name,setting,unit FROM sys_settings
WHERE category='内存配置';
-- 查询具体参数
SELECT name,setting FROM sys_settings
WHERE name='database_mode';
方法2 SHOW命令 - 精准定位
SHOW work_mem; -- 查看当前会话值
SHOW ALL; -- 查看所有生效参数
方法3 配置文件分析 - 透视底层
SELECT * FROM sys_file_settings
WHERE applied=true; -- 查看实际生效的配置项
三、参数修改:六大招式详解
招式1 配置文件修改
# kingbase.conf
shared_buffers = 2GB # kingbase类型参数
work_mem = 8MB # sighup类型参数
招式2 ALTER SYSTEM(等效修改配置文件)
ALTER SYSTEM SET work_mem='16MB';
SELECT sys_reload_conf(); -- 无需重启立即生效!
招式3 分级覆盖配置
ALTER DATABASE test SET work_mem='32MB'; -- 库级覆盖
ALTER ROLE admin SET work_mem='64MB'; -- 用户级覆盖
招式4 会话级动态设置
SET work_mem='128MB'; -- 当前会话生效
SELECT set_config('work_mem','256MB',false); -- 函数式设置
特别注意:
- kingbase类型参数必须重启生效
- internal参数禁止修改
- 用户级配置需重新登录生效
四、最佳实践:性能调优三板斧
场景1:内存优化
ALTER SYSTEM SET shared_buffers='4GB'; -- 总内存的25%
ALTER SYSTEM SET work_mem='16MB'; -- 连接数*work_mem < 总内存
场景2:连接优化
ALTER SYSTEM SET max_connections=500; -- 配合连接池使用
ALTER SYSTEM SET idle_in_transaction_session_timeout='10min';
场景3:查询优化
ALTER SYSTEM SET random_page_cost=1.1; -- SSD优化
ALTER SYSTEM SET effective_cache_size='8GB';
五、避坑指南:三个必须知道
- 修改不生效? 检查参数类型是否需要重启/重载
- 权限不足? superuser类型参数需要DBA权限
- 配置冲突? 优先级:会话设置 > 用户级 > 库级 > 全局
现在就来试试吧!在评论区分享你的参数调优经验,点击【收藏】随时查阅,【转发】让更多小伙伴一起成长!
你在参数配置中还遇到过哪些问题?欢迎留言讨论!