起因:

线上数据库资源占用过高, 发现存在周期性慢查询. "select field_name from table_name group by field_name order by field_name limit 1000"

用户纬度分析

根据慢查询日志定位访问用户为metabase用户

原因分析

是否存当前配置的查询或者定时任务等.

分析数据库表:
revision.object存储执行语句.
关键词搜索未匹配.

是否存在自动执行语句.

分析定时器相关表.(qrtz_xxxx)

分析数据库其它表

表: metabase_fieldvalues存储了字段的对应数据库值.
怀疑: 填充metabase_fieldvalues数据时执行了group by 或者DISTINCT指定

是否存在metabase自动执行语句

翻看filed配置相关的文档.
https://www.metabase.com/docs/latest/data-modeling/metadata-editing

文本翻译:

当您将默认筛选器更改为下拉筛选器时,将触发一个数据库查询,该查询获取该列的前1000个不同值(升序)。元数据库将缓存要在下拉菜单中显示的前100kB文本。如果您有超过1000个不同值的列,或包含大量文本数据的列,建议将此字段上的“筛选”设置为“搜索框”。

更改当前配置

查看触发group by 查询字段. 类型为分类, 字段过滤为"一个所有值的列表"
image
根据提示更改为搜索框, 生效.

ps

表数据量小怎么配置都可以, 数据量大了,配置触发了检索导致数据库服务资源占用过高.

posted on 2023-10-09 11:08  夜色无边000  阅读(94)  评论(0)    收藏  举报