dynamodb和php中的并行扫描

dynamodb和php中的并行扫描,php,laravel,amazon-web-services,amazon-dynamodb,Php,Laravel,Amazon Web Services,Amazon Dynamodb,我使用php和AWS,我有一个包含3.3m条记录的表,所以我需要扫描它,我使用parallels扫描 我的问题是:在第一次执行后,parallels扫描会自动使用扫描中最后计算的键吗?或者我需要在params数组中设置参数 代码是: $totalSegments = 10; $params = array( 'TableName' => $t, 'TotalSegments' => $totalSegments ); $scanCommands = array(); f

我使用php和AWS,我有一个包含3.3m条记录的表,所以我需要扫描它,我使用parallels扫描

我的问题是:在第一次执行后,parallels扫描会自动使用扫描中最后计算的键吗?或者我需要在params数组中设置参数

代码是:

$totalSegments = 10;

$params = array(
  'TableName' => $t,
  'TotalSegments' => $totalSegments
);

$scanCommands = array();

for($i = 0; $i < $totalSegments; $i++){
  $scanCommands[] = $this->db_client->getCommand('Scan', array('Segment' => $i) + $params);
}

$this->db_client->execute($scanCommands);

foreach ($scanCommands as $scanCommand) {
  $result = $scanCommand->getResult();
  $items = $result["Items"];
}
$totalSegments=10;
$params=数组(
“TableName”=>t美元,
“TotalSegments”=>$TotalSegments
);
$scanCommands=array();
对于($i=0;$i<$totalSegments;$i++){
$scanCommands[]=$this->db_client->getCommand('Scan',array('Segment'=>$i)+$params);
}
$this->db_client->execute($scanCommands);
foreach($scanCommands作为$scanCommand){
$result=$scanCommand->getResult();
$items=$result[“items”];
}
因此,我需要知道最后一个求值的键是自动使用的还是需要在params数组中设置的


谢谢

我怀疑这是一次并行扫描,但您正在对记录进行分页

Answer to your question is yes, you need to supply **LastEvaluatedKey** array to 
get next set of records
注意:您说过您有大约3M条记录,如果表吞吐量不够高,您将得到节流错误,需要单独处理。如果这是偶尔做一次的事情,那么就可以优化您的表并避免扫描(根据Amazon的建议)