我在调试菜单中看到我有一些重复的选择查询。特别是,这是我在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性能调优但想深入这个领域。谢谢你提前!
答案 0 :(得分:3)
更简单的方法是启用数据库缓存,然后它不重要,首先放置5秒的持续时间。
在组件数据库连接设置中,设置以下属性:
' enableQueryCache' =>真,
' queryCacheDuration' => 5,//五秒
请参阅https://www.yiiframework.com/doc/guide/2.0/en/caching-data
答案 1 :(得分:1)
我通常不会面对这个问题,但是如果我必须多次从数据库中检索一些东西(我知道它不会发生变化),我会在模型中做类似的事情
private $_myData = null;
public function getMyData() {
if ($this->_myData !== null) return $this->_myData;
$this->_myData = //query your data;
return $this->getMyData();
}