Yii2 MySQL如何防止重复选择查询

时间:2018-05-18 08:19:11

标签: mysql yii2-advanced-app

我在调试菜单中看到我有一些重复的选择查询。特别是,这是我在4个不同文件中获得4次#!/bin/sh # these lines will be executed on N computers # email is passed as first argument to this script email=$1 echo ""; echo "****Hostname****"; hostname echo ""; echo "****Disk Allocated****"; df -h echo ""; echo "****Ram Allocated****"; free -h # ;) echo testmail | mailx -s "Testmail" "$email" 的那个。有没有正确的方法来防止这种情况,这是对网站速度性能的重大打击?我应该检索一些变量中的行,如SELECT * FROM page_adminlang WHERE (language=bg) AND (page_id=1),然后在我需要的地方调用它,这是正确的方法吗?我更红了其他文章,但它们主要是插入时重复的行。不熟悉MySQL性能调优但想深入这个领域。谢谢你提前!

2 个答案:

答案 0 :(得分:3)

更简单的方法是启用数据库缓存,然后它不重要,首先放置5秒的持续时间。

在组件数据库连接设置中,设置以下属性:

' enableQueryCache' =>真,

' queryCacheDuration' => 5,//五秒

请参阅https://www.yiiframework.com/doc/guide/2.0/en/caching-data

https://www2.0/yii-db.yiiframework.com/doc/api/-connection

答案 1 :(得分:1)

我通常不会面对这个问题,但是如果我必须多次从数据库中检索一些东西(我知道它不会发生变化),我会在模型中做类似的事情

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

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