CDbCriteria and mysql USE INDEX()



我在yii中遇到了active record的问题。所以基本的问题是如何定义USE INDEX() mySQL标准作为CDbCriteria传递给CActivedataprovider。我没有在api或代码中找到它。也许有人已经遇到过这个问题,可以分享一下他的解决方案。

谢谢。

我找到了解决方案。https://github.com/yiisoft/yii/issues/1385这个hack有助于简单的选择和索引。

如果你使用yii2,你可以这样做:

$yourQuery = YourModel::find()
        ->select(['*'])
        ->from(['yourTable USE INDEX(index1, index2, index3)']);

这对于AR是不可能的,您应该将代码重写为DAO。

最新更新