在软件中连续几十万次检索简单数据,如何提高效率?

戏言zare 2023-04-18 10:05:57

最近做的一个项目,需要去数据库表中反复检索数据,检索的目标数据量很少,只是其中某一行的某个字段,但是次数会非常多,需要重复检索几万甚至是几十万几百万次,因此即便是最简单的计算加查询,整体耗时会由于反复查询数据库而变得非常慢。有没有什么办法把表中的数据先读到内存中,再从内存中像查询sql一样去检索我要的数据呢?

...全文
131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

目标表数据量较少, 直接业务这边全局缓存

赵4老师 2023-05-24
  • 打赏
  • 举报
回复

使用Redis ?

吉普赛的歌 2023-05-24
  • 打赏
  • 举报
回复

检索的目标数据量很少,只是其中某一行的某个字段,但是次数会非常多,需要重复检索几万甚至是几十万几百万次,因此即便是最简单的计算加查询,整体耗时会由于反复查询数据库而变得非常慢。

其实这里的思路就错了。
打个比方:让你回家拿东西,每次只拿一根线,但让你跑十万次,你骂不骂人?
本来就应该一次性把数据拿完,而不是来回反复拿。
来回本身的消耗就非常大的了。

吉普赛的歌 2023-05-24
  • 举报
回复
@吉普赛的歌 当然,如果一次拿不完,可以分几次,但总的目标应该是一次拿尽可能多的数据。
戏言zare 2023-05-26
  • 举报
回复
@吉普赛的歌 是的,所以根本原因不在于要不要去数据库建立索引什么的,因为不管再怎么优化查询数据库本身就是个费时操作了,所以我后来是直接一次性把所有数据存在本地list里,每次都直接去list里面取,就没有问题了。
空2处 2023-05-14
  • 打赏
  • 举报
回复

对要查找的列建立索引啊。

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧