我有一个可能有1000个对象的数组,其中包含一个名为ItemId的属性。 ItemId引用表主键。
如何通过主键选择1000行获得最佳性能?什么是最佳做法?
有更好的想法吗?
答案 0 :(得分:0)
通常通过限制查询次数来达到最佳性能。但是,使用WHERE ... IN
也可能很慢,因为IN
子句中的子查询将针对您循环的每一行执行。这取决于您的数据库引擎。
您可以(并且应该始终)通过尝试所有三种方法来测试性能。只有当您比较特定系统的性能时,您才会真正了解。要了解效果原因,您可以在查询前使用EXPLAIN
,以查看发生的情况。
在您的特定情况下,您可能会发现(使用性能测试)添加包含阵列的临时表然后加入可能具有最佳的低级别性能。使用实体框架应具有可比性,但这取决于实施。