Php 如何优化/合并此pdo查询和此计数查询?
这段代码运行得非常好,但我想知道是否有办法对其进行优化 我使用PDO和foreach循环发出请求,并显示存储在数据库中的所有文章Php 如何优化/合并此pdo查询和此计数查询?,php,mysql,pdo,count,Php,Mysql,Pdo,Count,这段代码运行得非常好,但我想知道是否有办法对其进行优化 我使用PDO和foreach循环发出请求,并显示存储在数据库中的所有文章 $allDatasAgenda = $bdd->query('SELECT id, cat_id, text, img FROM site_agenda WHERE activation = 1 ORDER BY date_publ
$allDatasAgenda = $bdd->query('SELECT id, cat_id, text, img FROM site_agenda
WHERE activation = 1
ORDER BY date_publication')->fetchAll(PDO::FETCH_ASSOC);
<?php
$i=1;
foreach($allDatasAgenda AS $data_agenda):
// generate all html
endforeach;
reset($allDatasAgenda);
?>
我想知道是否有一种方法可以只通过一个查询得到这个结果
这只是一个优化和美观的问题
如果有人能为我的问题推荐一个更好的标题,那就不客气了。让您知道,
$alldatashenda
是数组。为了获得数组元素的数量,PHP有一个名为-shopping!的函数
count()
为了让您知道,$alldatashenda
是数组。为了获得数组元素的数量,PHP有一个名为-shopping!的函数<代码>计数()用于优化:
- 在数据库上添加索引您至少应该在
列上有一个索引,但您需要在激活
上有一个排序结果,因此日期发布
上的索引将非常有用(激活,日期发布)
- 避免在html页面上显示数据库的所有内容。当您在
站点的议程中有1000多行时会发生什么?计算结果数组是一个很好的技巧,但如果程序通常执行计数查询和详细结果查询,那是因为它们在结果查询上使用限制和偏移量对数据进行分页。对数据进行分页意味着避免向用户显示超过50行,同时通过从数据库中检索超过50行来避免丢失时间、内存和带宽(例如50行,但没有人希望在html页面中读取1000行)。所以最后,您肯定需要一个计数查询来知道您有多少行,并且您不应该在结果中获得所有这些行
- 在数据库上添加索引您至少应该在
列上有一个索引,但您需要在激活
上有一个排序结果,因此日期发布
上的索引将非常有用(激活,日期发布)
- 避免在html页面上显示数据库的所有内容。当您在
站点的议程中有1000多行时会发生什么?计算结果数组是一个很好的技巧,但如果程序通常执行计数查询和详细结果查询,那是因为它们在结果查询上使用限制和偏移量对数据进行分页。对数据进行分页意味着避免向用户显示超过50行,同时通过从数据库中检索超过50行来避免丢失时间、内存和带宽(例如50行,但没有人希望在html页面中读取1000行)。所以最后,您肯定需要一个计数查询来知道您有多少行,并且您不应该在结果中获得所有这些行
$countArticlesAgenda = $bdd->query('SELECT count(*) FROM site_agenda WHERE activation = 1');
$count_articles_agenda = $countArticlesAgenda->fetchColumn();