gpt4 book ai didi

php - 优化页面充电时间(使用 Eloquent 请求)

转载 作者:行者123 更新时间:2023-11-29 06:16:45 24 4
gpt4 key购买 nike

我想优化我的代码以减少页面充电时间。

在每个页面中,我都有一个向 mysql DTB 发出请求的句柄函数,我想知道是否可以存储当天的一些数据,并最终每天更新一次数据,或者当某个函数被调用时。我必须明确我使用 Eloquent 来发出请求。

这可能吗?

编辑:这是每次页面收费时我调用的代码

$handleMenu = function () use ($app){
return function() use ($app){
$req = $app->request;

//Get resource URI
$resourceUri = $req->getResourceUri();

if(!isset($_SESSION["Edition"])) {
$_SESSION["Edition"] = "NANCY";
}
$selectedEdition = Edition::where("nomXML", "=", $_SESSION["Edition"])->first();
$rubriques = Rubrique::where("nomAssocie", "!=", "Edito")->where("nomAssocie", "!=", "Offre d'emploi")->get();
$saisons = Article::with("rubrique")->where("saison", "=", true)->take(5)->get();
$festival = Article::with("rubrique")->where("festival", "=", true)->take(5)->get();
$editions = Edition::where("nomAssocie", "not like", "%-%")
->where("nomXML", "!=", "TTES EDITIONS")
->where("nomXML", "!=", "ARTGASTRONOMIE")
->get();
$today = $date = date('Y-m-d');
$banniere = Pub::where("type", "=", 2)
->whereHas("Pub_Edition", function($query) use($selectedEdition){
$query->where("id_edition", "like", "%".$selectedEdition->id_edition."%");
})->where("date_deb", "<=", $today)
->where("date_fin", ">=", $today)
->orderByRaw("RAND()");
if(strpos($resourceUri, "/articles/rubrique/") !== false){
$arr = explode( '/', $resourceUri );
$banniere = $banniere->whereHas("Pub_Rubrique", function($q) use($arr){
$q->whereHas("Rubrique", function($q2) use($arr){
$q2->where("nomXML", "=", $arr[3]);
});
});
};
$banniere = $banniere->first();
if($banniere != null){
$banniere->nb_affichage = $banniere->nb_affichage + 1;
$banniere->save();
}
$twig = $GLOBALS["globalapp"]->view()->getEnvironment();
$twig->addGlobal('menuRubriques', $rubriques);
$rubriques = $rubriques->toArray();
usort($rubriques, function($a, $b)
{
return strcmp($a["nomAssocie"], $b["nomAssocie"]);
});
$twig->addGlobal("rubriques", $rubriques);
$twig->addGlobal("festivals", $festival);
$twig->addGlobal("saisons", $saisons);
$twig->addGlobal("editions", $editions);
$twig->addGlobal("actualEdition", $_SESSION["Edition"]);
$twig->addGlobal("selectedEdition", $selectedEdition);
$twig->addGlobal("banniere", $banniere);
};
};

最佳答案

大多数 DBMS 都非常擅长缓存查询,因此这可能不是瓶颈。您需要确保查询本身已优化。如果你使用 Eloquent,请确保任何关系都是 eager loaded .如果不这样做,那通常会减慢您的页面加载速度,因为您要多次访问数据库。如果确实有必要,您可以使用 Memcached 或 Redis 等对象缓存来缓存数据,但如前所述,MySQL 非常擅长缓存查询...

关于php - 优化页面充电时间(使用 Eloquent 请求),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35450475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com