Ich habe ein Array von IDs (eventids), bei denen es sich um Millionen oder Milliarden IDs innerhalb der Tabelle handeln kann. Ich verwende eine for-Schleife, um jede ID zu durchlaufen und mithilfe der Abfrageoperation in PHP ein Element aus einer Dynamo-Datenbanktabelle abzurufen. Da der Abfragevorgang jedoch eine große Menge an Informationen in meiner Tabelle umfasst, dauert es zu lange, bis der Abfragevorgang seine Arbeit erledigt. In diesem Fall erhalte ich also kein Ergebnis, weil ich eine Auszeit bekomme. Der folgende Code versucht, diesen Vorgang auszuführen, der bei großen Informationsmengen fehlschlägt. Ich frage mich, ob Sie Empfehlungen oder Vorschläge haben, wie der Abfragevorgang für große Mengen von IDs im Array $sfweventarrayRDS schneller und durchführbar gemacht werden kann?
for ($j = 0 ; $j < count($sfweventarrayRDS) ; $j++){
$keyconditions = array(
"eventid" => array(
"ComparisonOperator" => ComparisonOperator::EQ,
"AttributeValueList" => array(
array(Type::NUMBER => $sfweventarrayRDS[$j]["eventid"])
)
)
);
$sfweventarrayDynamo = Dynamo::getItems("eventlocation",$keyconditions,$limit);
if (count($sfweventarrayDynamo) > 0){
$timediffepoch = $sfweventarrayDynamo[0]["edatecreated"]["N"] - $sfweventarrayRDS[$j]["edatecreated"];
$timediffstandard = new DateTime("@$timediffepoch");
if ($timediffstandard->format('i') >= 5){
$starttimeepoch = $sfweventarrayRDS[$j]["edatecreated"];
$endtimeepoch = $sfweventarrayDynamo[0]["edatecreated"]["N"];
$starttimestandard = new DateTime("@$starttimeepoch");
$endtimestandard = new DateTime("@$endtimeepoch");
$each_event = array("eventid" => $sfweventarrayDynamo[0]["eventid"]["N"],
"organizationid" => $sfweventarrayRDS[$j]["organizationid"],
"userid" => $sfweventarrayDynamo[0]["userid"]["N"],
"starttime" => $starttimestandard->format('Y-m-d H:i:s'),
"endtime" => $endtimestandard->format('Y-m-d H:i:s'),
"location" => $sfweventarrayRDS[$j]["location"],
"startlatitude" => $sfweventarrayRDS[$j]["latitude"],
"startlongitude" => $sfweventarrayRDS[$j]["longitude"],
"endlatitude" => $sfweventarrayDynamo[0]["latitude"]["N"],
"endlongitude" => $sfweventarrayDynamo[0]["longitude"]["N"]);
array_push($safewalkeventsDynamo, $each_event);
}
}
}
Server-Timeout beim Dynamo DB-Abfragevorgang zum Abrufen von Elementen aus einer Tabelle ⇐ Php
-
- Similar Topics
- Replies
- Views
- Last post