【发布时间】:2023-03-30 22:08:01
【问题描述】:
假设我有一个带有索引 id 的不同对象的表,其中包含有关每个对象的详细信息,并且我有另一个选定对象表,每个表都包含引用所选特定对象的 id 以及更多详细信息,例如对象包含为的日期选择。所以可以看成是这样的:
objects choosen objects
+-------------------------+ +-------------------------+
| objID | image| ... | | objID | date | ... |
+-------------------------+ +-------------------------+
| 1 | ... | ... | | 2 | ... | ... |
| 2 | ... | ... | | 3 | ... | ... |
| 3 | ... | ... | | 5 | ... | ... |
+-------------------------+ +-------------------------+
现在在我的 php 文件中,我使用以下查询访问所有选择的对象:
$con = mysqli_connect('localhost','root','root', 'objects')or die('not connecting');
$sql="SELECT * FROM choosen;";
$result = mysqli_query($con,$sql);
$id=array();
while($row=mysqli_fetch_assoc($result)){
array_push($id,$row["objID"]);
}
这样,我想使用选定对象表中的对象 ID 来引用具有相同 ID 的对象,以便在屏幕上显示对象的图像作为对象表中包含的其他详细信息。因此,我得到以下代码:
$con = mysqli_connect('localhost','root','root', 'objects')or die('not connecting');
foreach($array_id as $i){
$sql="SELECT * FROM objects WHERE objID=".$id.";";
$result = mysqli_query($con,$sql);
$row=mysqli_fetch_assoc($result);
display($row);
}
尽管如此,我担心必须调用多个查询请求来循环选择对象并检索它们的详细信息作为它们的图像会导致无效和缓慢的数据检索。我想知道是否有一种最有效的方法可以从对象表中检索数据,这样可以节省更多时间和查询成本,或者另一方面,是否最好将图像和其他对象数据复制并传播到所选对象表中创建时,牺牲内存成本以换取时间和查询节省。我想听听您的任何决定和建议的优势。
【问题讨论】:
-
我投票结束这个问题,因为这个问题属于codereview.stackexchange.com
标签: php mysql database performance memory