关于数据库查询结果中的用户ID如何快速换成用户名?

bandaoyu 2019-02-15 10:52:31
我们设计关系数据库的时候,记录中的用户,我们通常用用户ID记录(因为用户可能改名),例如:

hero_info:
user_id class hero
101 2 项羽
102 2 鲁班七号
103 5 扁鹊
106 3 赵云
112 9 墨子

而用户的基本信息在另外的表内
user_info
user_id name age city
101 周姆若 12 南京
102 左热禅 18 苏州
103 令直冲 23 上海
106 岳不孤 19 徐州
112 张全忌 21 南通

我们在查询hero_info的时候,会将满足条件的记录查出来,然后将用户id换成用户名,显示给客户端:


用户名 等级 英雄
周姆若 2 项羽
左热禅 2 鲁班七号
令直冲 5 扁鹊
岳不孤 3 赵云
张全忌 9 墨子



问题:

我们查询出,下面的信息后如何快速的将用户ID换成用户名?
user_id class hero
101 2 项羽
102 2 鲁班七号
103 5 扁鹊
106 3 赵云
112 9 墨子

将用户表的所有信息放到一个哈希表中,然后追个记录取出user_id 放入哈希表获得用户名?你们如何处理?
...全文
1133 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
狐姬 2019-09-24
  • 打赏
  • 举报
回复
用户ID换成用户名 的数据库的语句是什么?
smwhotjay 2019-02-22
  • 打赏
  • 举报
回复
多表查询
hellobabyok2008 2019-02-22
  • 打赏
  • 举报
回复
这个事情直接一条sql交给数据库不就可以,为何要用程序额外做哈希表,再查询、替换,效率未必高
hellobabyok2008 2019-02-22
  • 打赏
  • 举报
回复
单纯hash一定快,但我认为你的问题正因为字符串的操作影响效率。 数据库的查询结果本来就是查询字段的拼接,查询结果不能直接使用的话,就必须再解析、拼接,就算用库函数读取每个字段也至少有一次解析过程,我认为不会比数据库直接拼接结果效率高。 那我想问,有没有实测对比多表查询和解析字段自己合成的效率?多表查询已经影响效率甚至造成瓶颈了吗,增加数据库缓存是否有用? 另外用户每次改名,是经本程序读写数据库吗?如果是其它程序,那本程序还要读取再修改hash数据,是否浪费资源?
bandaoyu 2019-02-22
  • 打赏
  • 举报
回复
引用 2 楼 hellobabyok2008 的回复:
这个事情直接一条sql交给数据库不就可以,为何要用程序额外做哈希表,再查询、替换,效率未必高
哈希表只有动的时候做一次,查询,然后根据结果中的ID在hash表中得到名字,这个流程下来,理论上 hash表应该比多表查询更快。因为你多表查询经历了什么你知道吗

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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