我在调试菜单中看到一些重复的select查询。特别是,这是我得到了4次 SELECT * FROM page_adminlang WHERE (language=bg) AND (page_id=1)
在4个不同的文件中。有没有一个正确的方法来防止这种情况,这是对网站的速度性能大打击?我可以用变量来检索行吗 $page = PageAdmin::findOne(1)
在我需要的地方打电话,这样对吗?我阅读了其他文章,但它们主要是用于插入时的重复行。不熟悉mysql性能调整,但想在这方面更深入一些。提前谢谢!
2条答案
按热度按时间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
8cdiaqws2#
我通常不会遇到这个问题,但是如果我必须多次从数据库中检索某些内容(我知道这不会改变),我会在我的模型中执行类似的操作