起因:
线上数据库资源占用过高, 发现存在周期性慢查询. "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 查询字段. 类型为分类, 字段过滤为"一个所有值的列表"

根据提示更改为搜索框, 生效.
ps
表数据量小怎么配置都可以, 数据量大了,配置触发了检索导致数据库服务资源占用过高.
浙公网安备 33010602011771号