我在aws dynomodb中有20张桌子。一切都很好。但是现在它没有工作,并且花费了太多时间来获取数据。我无法弄清问题在哪里。
如果我的代码中存在问题:在它工作正常之前我没有更改代码中的任何内容。
如果在dynamodb中出现问题:移动端dynamodb查询工作正常。这对我有用。移动和网站使用相同的数据库。
如果我服务器上出现问题那么:面对这个问题后我创建了新的instance.i已经使用了ubuntu,现在一切正常,期待dynamodb。
这里我放置了一个演示代码,说明我是如何从dynamodb表中获取数据的。
require 'vendor/autoload.php';
use Aws\Common\Aws;
use Aws\DynamoDb\DynamoDbClient;
$aws = Aws::factory ( '/var/www/html/jackpot/id.php' );
$client = $aws->get ( 'DynamoDb' );
$iterator = $client->getIterator ( 'Scan', array (
'TableName' => 'iqjackpot-mobilehub-352703280-counter'
) );
foreach($iterator as $item){
$totalTicket = (int) $item['totalTickets']['N'];
$counterIds = (int) $item['counterId']['N']+1;
}
echo $totalTicket;
die;
我不知道我做错了什么,现在做什么。我花了2天时间。如果有人帮助我,我会非常感激。
答案 0 :(得分:3)
您正在使用AWS DynamoDB扫描功能。 DynamoDB扫描非常慢。
来自:AWS DynamoDB
通常,扫描操作的效率低于DynamoDB中的其他操作。扫描操作始终扫描整个表或二级索引。然后它过滤掉值以提供您想要的结果,实质上是添加了从结果集中删除数据的额外步骤。
建议使用DynamoDB查询。如果您的索引设置正确,它应该会快得多!