Я пришел из мира реляционных баз данных, а потом нашел эту штуку с хранилищем данных. на то, чтобы разобраться, потребовалось несколько дней. ну вот некоторые из моих выводов.
Вы, должно быть, уже знали, что хранилище данных построено с возможностью масштабирования, и это то, что отличает его от RDMBS. для лучшего масштабирования с большим набором данных в App Engine внесены некоторые изменения (некоторые из них означают много изменений).
СУБД VS DataStore
Структура
В базе данных мы обычно структурируем наши данные в таблицах, строках, которые в хранилище данных становятся Виды и объекты.
Отношения
В РСУБД большинство людей следуют отношениям "один к одному", "многие к одному", "многие ко многим" в хранилище данных, поскольку в нем есть параметр "Нет соединений". но все же мы можем добиться нормализации с помощью "ReferenceProperty", например Один-к-одному Пример.
Индексы
Обычно в RDMBS мы делаем индексы наподобие Primary Ключ, внешний ключ, уникальный ключ и индексный ключ для ускорения поиска и повышения производительности нашей базы данных. В хранилище данных вы должны создать как минимум один индекс для каждого вида (он автоматически сгенерирует нравится вам это или нет), потому что хранилище данных ищет вашу сущность на основе этих индексов и поверьте мне, это лучшая часть. В СУБД вы можете искать, используя неиндексное поле, хотя это займет некоторое время, но будет. В Datastore нельзя выполнять поиск с использованием неиндексных свойств.
Подсчет
В RDMBS подсчет намного проще (*), но в хранилище данных, пожалуйста, даже не думайте об этом обычным образом (да, есть функция подсчета), поскольку в нем есть Лимит 1000 и это будет стоить столько же небольших операций, сколько объект, который не хорошо, но у нас всегда есть хороший выбор, мы можем использовать счетчики осколков.
Уникальные ограничения
в RDMBS , Нам нравится эта функция, правда? но у Datastore свой путь. вы не можете определить свойство как уникальное :(.
Запрос
GAE Datatore предоставляет более удобную функцию LIKE (О, нет! в хранилище данных нет ключевого слова LIKE) SQL, который является GQL.
Вставка / Обновление / Удаление / Выбор данных
Это то, в чем мы все заинтересованы, так как в RDMBS нам требуется один запрос для вставки, обновления, удаления и выбора, точно так же, как РСУБД, хранилище данных поместило, удалило , получите (не слишком волнуйтесь), потому что хранилище данных помещает или получает с точки зрения записи, чтения, небольших операций (см. Затраты на вызовы хранилища данных), и именно здесь моделирование данных вступает в действие. вы должны свести к минимуму эти операции и поддерживать работу приложения. Для уменьшения операции чтения можно использовать Memcache.
person
sanjay kushwah
schedule
09.04.2013