V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  heiya  ›  全部回复第 2 页 / 共 4 页
回复总数  80
1  2  3  4  
@lemonteacode 牛个毛啊,应该还有别的效率好的方法
![20240527142735.png]( https://postimg.cc/HVpW7gLq)

![20240527150625.png]( https://postimg.cc/vcBYWgKS)

- 感觉和我的需求有些类似。只不过在我这个需求中没有固定的顶级节点,每一个节点都有可能是顶级节点,而且层级是不确定的。此外,还有一种特性,顶级节点的下的某一层级的的节点很有可能又链接回了顶级节点(或者它的上层节点),例如:1_1->2_1->3_1->1_1 。
- 考察了两种解决方法。一种是把所有节点扁平化放在 mysql 中,实时查询组装成树形结构返回。另一种是使用图数据库存储。考虑到由于查询页面是在管理端,且未来数据量并不会多,并发量也不会大,最后决定使用第一种扁平化存储的方式。
- 查询方法。例如,某一个节点作为顶级节点,它的直接子节点有三个,那就开三个子线程,采用递归的方法让当前子节点作为中心节点查询,一直查询到最后一级。等到所有的线程查询完成,陆续通知主线程,最后返回,当某个线程超出时间限制没有返回时,直接丢弃。其中,要注意环的问题,判断出有环直接返回,不然递归无法跳出,直接内存溢出;还有之前通过节点查询出的数据在这个请求中要缓存一下,避免重复请求数据库。
- 递归问题。我的需求中使用缓存是不太合理的,原因是每个节点都是顶级节点,意味着每当和这个节点有关系的树形结构发生变更时都要进行缓存的更新,我感觉使用缓存不太合适。如果你的需求中顶级节点是固定的且更新不太频繁可以试一试,不过由于你说节点有上万个,是不是考虑一下是否有大 key 问题。使用 protobuff 结构所占的空间比使用 json 所占的空间要小的多。
178 天前
回复了 gangster 创建的主题 Markdown markdown 语法-插入图片
test

![20240527142735.png]( https://postimg.cc/HVpW7gLq)
攒钱
194 天前
回复了 techdai 创建的主题 生活 大家有什么泡水喝不腻的❓
张一元的茉莉花茶,清香,我喝着挺不错。
205 天前
回复了 heiya 创建的主题 问与答 求助:复杂的引用关系应该使用什么方案
@vcbal
@Nooooobycat
调研了一下,图数据库是可以实现且比较合理的方案。考虑到这块业务并不是很核心,在数据量并不多的情况下还是不增加项目复杂度,没有引用图数据库。目前还是在关系型数据库中存储的,一个 fromId ,一个 toId 。查询时开了多个线程,最后合并返回的。
206 天前
回复了 xiaohupro 创建的主题 职场话题 工作环境重要吗
无形装逼,最为致命。
209 天前
回复了 magic3584 创建的主题 MacBook Pro MacBook Pro 决赛圈
@zhandouji2023 摸鸡老板在哪?
209 天前
回复了 CareiOS 创建的主题 求职 找一份 iOS/Flutter/ Java 的工作
@suancaip 会被 ak 顶头吗?
232 天前
回复了 Braid 创建的主题 职场话题 工作中经常提出问题的人最后混的怎样?
由此可见得看什么公司什么领导
233 天前
回复了 t41372 创建的主题 Telegram 为什么用 telegram 的人这么多
我纯是为了看片
@googlefans 在丰台哪个地啊?
18.8w
254 天前
回复了 avadakur 创建的主题 程序员 关于数据库高并发插入的版本号问题
@litguy 这个我感觉是相当于把所有的并发操作限制成了串行操作,是可以保证线程安全的,那效率怎么样呢?还有就是回调队列是干了什么事呢?
254 天前
回复了 avadakur 创建的主题 程序员 关于数据库高并发插入的版本号问题
并发要求多少?这种共享变量的 读取-新增 操作不上锁都会有并发问题吧?可以试试把锁的粒度控制在最小,试试 select version from table where userid = ${} and business_type = ${} order by version limit 1 for update; where 条件字段要索引。
259 天前
回复了 camchin1 创建的主题 职场话题 现在招聘离大谱了
35 这个数是哪个流氓最先使用的懂得都懂
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   968 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 39ms · UTC 21:35 · PVG 05:35 · LAX 13:35 · JFK 16:35
Developed with CodeLauncher
♥ Do have faith in what you're doing.