Хранилище данных GAE / J: хранение нулевых и пропущенных значений - PullRequest
2 голосов
/ 02 января 2011

Кто-нибудь может подтвердить, является ли сохранение свойства с нулевым значением наиболее эффективным (с точки зрения использования хранилища данных и квот), чем вообще ничего не хранить (т. Е. Отсутствующее значение)?

Кажется разумным так думать, и в этом случае я хотел бы знать, как избежать сохранения значения свойства вместо нулевого значения при использовании JDO / JPA. Мне удалось избежать сохранения данного свойства только с помощью API низкого уровня хранилища данных.

Ответы [ 2 ]

1 голос
/ 03 января 2011

Я считаю, что отсутствие сохранения свойства сэкономит вам небольшое количество дисковой квоты, но я не уверен, что оно того стоит, если только количество этих «необязательных» свойств не велико по сравнению с количеством «всегда»Там "свойства.

Конечно, вы можете сделать простой тест, создав 2 набора образцов данных с помощью низкоуровневого API и проверив страницу Stats , чтобы увидеть, как размеры отличаютсяхранилище данных.

Нужно знать, что AFAIK нельзя запрашивать для всех сущностей, которые не имеют свойство.

0 голосов
/ 01 ноября 2013

Хранение null имеет свои затраты.

Это две операции записи и тоже мало данных. Если имя свойства является общим с другими объектами, я предполагаю, что имя находится в словаре, и каждое свойство хранит указатель для получения имени.

https://developers.google.com/appengine/docs/java/datastore/entities#Java_Understanding_write_costs

...