Почему на запрос Dynamodb слишком много времени уходит на сбор данных с помощью php - PullRequest
0 голосов
/ 27 апреля 2018

У меня 20 таблиц в aws dynomodb. И все работало очень хорошо. но теперь это не работает и отнимает слишком много времени для получения данных. Я не могу понять, в чем проблема.

если проблема в моем коде, то : До того, как все заработало, я ничего не изменил в коде.

если проблема в DynamodB, то : запросы DynamodB на мобильной стороне работают нормально. Так как это работало для меня. и мобильный, и веб-сайт, использующий одну и ту же базу данных.

если проблема на моем сервере, то : после решения этой проблемы я создал новый экземпляр. Я взял 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 дня. Если кто-то мне поможет, я буду очень очень благодарен.

1 Ответ

0 голосов
/ 27 апреля 2018

Вы используете функцию сканирования AWS DynamoDB. DynamoDB сканирует очень медленно.

От: AWS DynamoDB

Как правило, операции сканирования менее эффективны, чем другие операции в DynamoDB. Операция сканирования всегда сканирует всю таблицу или вторичный индекс. Затем он отфильтровывает значения, чтобы получить желаемый результат, по существу добавляя дополнительный шаг удаления данных из набора результатов.

Рекомендуется использовать запрос DynamoDB. Если ваши индексы установлены правильно, он должен идти намного быстрее!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...