使用了Sugar后,mysql的information_schema.tables查询次数超级多 返回
SqlSugar
沟通中
9
230
码丁 发布于2周前
悬赏:0 飞吻
现在这个查询量是整个系统第一名,如何解决
热忱回答(9)
-
fate sta VIP02周前
你是不是用了分表,分表有个性能优化,可以不查询这个
0 回复 -
码丁 VIP02周前
对,我们大量用到了分表,请教下大佬如何进行优化
0 回复 -
码丁 VIP02周前
@fate sta:对,我们大量用到了分表,请教下大佬如何进行优化
0 回复 -
fate sta VIP02周前0 回复
-
fate sta VIP02周前
每天12点清空缓存就行了
0 回复 -
码丁 VIP02周前
@fate sta:既然传true就是走缓存,为什么还要另外去写缓存的方法
0 回复 -
fate sta VIP02周前
@码丁:这个缓存没办法清理
0 回复 -
fate sta VIP02周前
你要无缓存方法
0 回复 -
码丁 VIP02周前
services.AddSingleton<ISqlSugarClient>(sqlSugar); // 单例注册 services.AddScoped(typeof(SqlSugarRepository<>)); // 仓储注册 services.AddUnitOfWork<SqlSugarUnitOfWork>(); // 事务与工作单元注册 var cacheKey = "SplitTablesCache"; var cache = services.BuildServiceProvider().GetRequiredService<IMemoryCache>(); StaticConfig.SplitTableGetTablesFunc = () => { if (cache.TryGetValue(cacheKey, out List<SplitTableInfo> cachedTables)) { return cachedTables; } else { var db = services.BuildServiceProvider().GetRequiredService<ISqlSugarClient>(); var list = db.DbMaintenance.GetTableInfoList(false); var result = list.Select(it => new SplitTableInfo() { TableName = it.Name }).ToList(); var nextMidnight = DateTime.Now.Date.AddDays(1); var cacheEntryOptions = new MemoryCacheEntryOptions { AbsoluteExpiration = new DateTimeOffset(nextMidnight) }; cache.Set(cacheKey, result, cacheEntryOptions); return result; } };
@fate sta:我这么写似乎没有生效,跟踪下来还是老样子。
0 回复