Ограничения на количество данных в Google App Engine - PullRequest
1 голос
/ 20 февраля 2012

Я пишу базу данных Google App Engine, которая, как только она будет запущена, вероятно, будет содержать более 10 миллионов записей с довольно постоянными запросами, вставками и удалениями.

Будет ли эта проблема представлять проблему?Меня не беспокоит стоимость ($$$) только производительности базы данных.Запросы будут основаны на двух полях, которые оба являются StringProperty и возвращают менее 100 записей.

База данных имеет две «таблицы», та, которая будет получать большинство запросов к ней, имеет записи, которые занимают около100 байт.Большая таблица не будет получать столько запросов (может быть, 1/10 от числа, что и маленькая таблица), и каждая запись будет иметь размер около 30 КБ.

Является ли удаление дорогой операцией?Лучше не удалять старые записи и просто пометить их как удаленные и, возможно, массово удалить их в задании cron?

Я знаю о распределенной природе Google App Engine и репликации, и эти проблемы не будутбыть проблемой.

1 Ответ

2 голосов
/ 20 февраля 2012

10 миллионов записей - не большое количество для хранилища данных, так что вам не нужно беспокоиться, если ваши запросы могут использовать индексы.Например, если вам нужно пройти больший набор данных на 100 записей за раз, вместо того, чтобы сказать, что вы хотите начать с определенной позиции в наборе данных, вы можете вспомнить последнее значение поля ORDER BY в конце страницы и спроситьдля элементов, следующих за ним (поле WHERE> '...' - в порядке возрастания).

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

Записи хранилища данных не могут превышать 1 МБ30Kb - это рекордный размер, но проблем не должно быть.Помните, что только короткие строки (не более 500 символов) могут быть проиндексированы.

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