多表查询的结果能缓存吗?如何做能提高效率?

例如现在我有个日志表

create table log(
    integer user_id,
    char(100) action
);

和一个用户表

create table user(
    integer user_id,
    char(20) username
);

我要查询 username,action
user的数据量不是很大(1w级),而log的数据量是非常大的。这样的话每次查询都需要做连接,效率应该会非常慢!请问有什么解决方法不?

我考虑是不是可以适当的增加缓存,例如在log中再增加一个username字段,但是用户是有可能改username的,不知道大家在实际系统中有什么好办法?

阅读 5.2k
2 个回答

既然用户表不大,那么就先查日志,查完日之后得到uid 然后再去user里查username

可以增加冗余字段,然后定时离线跑数据一致性,毕竟username修改频率不是太高

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题