yii2 mysql如何防止重复选择查询

piah890a  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(311)

我在调试菜单中看到一些重复的select查询。特别是,这是我得到了4次 SELECT * FROM page_adminlang WHERE (language=bg) AND (page_id=1) 在4个不同的文件中。有没有一个正确的方法来防止这种情况,这是对网站的速度性能大打击?我可以用变量来检索行吗 $page = PageAdmin::findOne(1) 在我需要的地方打电话,这样对吗?我阅读了其他文章,但它们主要是用于插入时的重复行。不熟悉mysql性能调整,但想在这方面更深入一些。提前谢谢!

laximzn5

laximzn51#

一个更简单的方法是启用db缓存,然后就不重要了,先设置5秒的持续时间。
在组件数据库连接设置中,设置以下属性:
'enablequerycache'=>正确,
'querycacheduration'=>5,//5秒
看到了吗https://www.yiiframework.com/doc/guide/2.0/en/caching-data
https://www2.0/yii-db.yiiframework.com/doc/api/-connection

8cdiaqws

8cdiaqws2#

我通常不会遇到这个问题,但是如果我必须多次从数据库中检索某些内容(我知道这不会改变),我会在我的模型中执行类似的操作

private $_myData = null;
public function getMyData() {
    if ($this->_myData !== null) return $this->_myData;

    $this->_myData = //query your data;
    return $this->getMyData();
}

相关问题