keycloak~大数据量时坑出现~索引的坑

我不知道为什么kc没有为对应的查询字段加索引,导致我们在使用kc时,当用户表数据量达到几十万时,出现所有增删改接口缓慢的问题,这个问题的原因,我找了好长时间,我在大数据量时找这个缓慢原因过程

  • 查看mysql的并发数的限制
  • 查看top产生的cpu,内在的使用情况
  • 查看客户端到kc端,kc端到数据库的网络传输限制
  • 为k8s的资源进行调整,添加内存额度
  • 为username字段添加索引
  • 打开mysql日志功能,观察慢接口的日志
  • 找到慢的语句
    select userentity0_.ID as ID1_75_, userentity0_.CREATED_TIMESTAMP as CREATED_2_75_, userentity0_.EMAIL as EMAIL3_75_, userentity0_.EMAIL_CONSTRAINT as EMAIL_CO4_75_, userentity0_.EMAIL_VERIFIED as EMAIL_VE5_75_, userentity0_.ENABLED as ENABLED6_75_, userentity0_.FEDERATION_LINK as FEDERATI7_75_, userentity0_.FIRST_NAME as FIRST_NA8_75_, userentity0_.LAST_NAME as LAST_NAM9_75_, userentity0_.NOT_BEFORE as NOT_BEF10_75_, userentity0_.REALM_ID as REALM_I11_75_, userentity0_.SERVICE_ACCOUNT_CLIENT_LINK as SERVICE12_75_, userentity0_.USERNAME as USERNAM13_75_ from USER_ENTITY userentity0_ where userentity0_.SERVICE_ACCOUNT_CLIENT_LINK='25e52f60-5991-43dd-9108-873f60af385d' and userentity0_.REALM_ID='xxx'
  • 为两个查询字段添加索引SERVICE_ACCOUNT_CLIENT_LINKSERVICE_ACCOUNT_CLIENT_LINK
  • 问题解决!
    最后,把这个问题产生的过程,和解决方法抛出来,并且我会在github上为redhat提出这个bug。
posted @   张占岭  阅读(405)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
历史上的今天:
2015-09-10 Nuget~让包包带上自己的配置信息
2015-09-10 VS~单步调试DLL
2013-09-10 知方可补不足~sqlserver中触发器的使用
点击右上角即可分享
微信分享提示