Yii2 - 通过唯一字段获取一行时的 Oracle 性能问题

问题描述 投票:0回答:1

我使用 Yii2,版本 2.0.35,apaoww/yii2-oci8 版本 **1.0.**0 连接到 Oracle DB

我有一个存储用户的表,大约有 800 万行。该表有一个“电话号码”的唯一索引

我在尝试通过电话号码获取用户时遇到性能问题,如下所示:

$user = User::findOne(['phonenumber' => 'xxxx']);

大约需要4s,但是当我尝试直接在DB中选择时,它运行得非常快。

我通过在下面的脚本中使用另一个查询解决了这个问题:

$user = User::find()
   ->where(['phonenumber' => 'xxxx'])
   ->limit(1)
   ->one();

所以,我的问题是:

  1. 你也有同样的问题吗?
  2. 这个案例到底发生了什么?新的Yii2版本修复了吗
yii2 oracle12c
1个回答
0
投票

User 表中是否有电话号码索引?如果没有,那么您应该修复它并检查请求的速度。

© www.soinside.com 2019 - 2024. All rights reserved.