我要求我有一点点困惑,需要你提出一些建议。我有用户对象和他有权限的site_ids列表。所以我的疑问是,我是否必须缓存这些权限并在查询的IN中使用它们来执行某些其他操作或不缓存它们,而是使用IN子句中的嵌套查询来获取site_ids? 由于存在内存或数据库访问权限,因此会存在权衡。
感谢。
答案 0 :(得分:1)
评论时间有点长。
如果我理解正确,你的问题是:
您应该在数据库中执行所有处理。在不需要时,为什么还要考虑多个查询和应用程序级逻辑呢?
如果你确实需要应用程序中的id,那么在那里有构造查询的参数。值得注意的是,基础数据可能会发生变化,您可能希望为用户提供一致的界面。
MySQL在使用常量列表优化in
方面做得很好。除了运行多个查询和进行客户端处理的开销之外,具有许多常量的IN
应该具有良好的性能。