GBase 8a 大量表级别授权场景需求解决办法

xuansiyu 2021-05-22 11:31:36
通常项目的仓库上很多授权只需要到库级别即可,因为每天每刻都会产生新的表或删除,要求授权至表级别,除非表名很少变化,否则会造成极大的管理工作量。但是由于安全要求,也存在要求表级别需求的。这时候如果表较多,比如千万级别,授权表每次查询响应较忙。通常会造成很多用户使用数据库时,经常遇到卡顿现象。因为每个用户每做一个操作,数据库都会校验其是否存在权限。
我们知道库级别的授权保存在gbase.db上,一般项目上库的数量只有几十个,一般不会超过千个级别。就是说gbase.db的授权记录数只有千行级别一下,权限查询时,响应通常涨毫秒级别。用户的权限校验过程中不会出现卡顿感知。而表级别的授权是保存在gbase.tables_priv上,表授权太多时就会造成表的响应时间过长。客观上不可避免,如千万级别的表,不管什么数据库,什么引擎,精确查询一次耗时都不会少于秒级别。而就是这个秒级别的查询响应,会造成用户每次操作前,都会有明显的卡顿感知。那有什么办法解决吗? 说实在的,方法并不是很有效。但可以通过以下方法优化:
1)尽量控制表级别授权数量。加大表删除后,回收权限记录,尽最大努力减少gbase.tables_priv的行数。
2)通过修改参数,让tables_priv表填充到内存,提高该表查询性能。如修改gcluster的配置文件,增加以下配置
key_buffer_size = 512M
table_open_cache = 16384
table_definition_cache = 16384
修改gnode的配置文件,增加以下配置
key_buffer_size = 512M
table_open_cache = 16384
table_definition_cache = 16384
3)需要天津南大通用研发优化gbase.tables_priv表的引擎,据了解目前GsSYS对这种场景并不擅长。
4)提供性能较好的管理主机,通过硬件条件的升级,来提高该表的查询效率。
...全文
173 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧