Я прийшов із світу реляційних баз даних, тоді я знайшов цю сховище даних. пішло кілька днів, щоб повісити його. добре, є деякі мої висновки.
Ви, мабуть, вже знали, що Datastore створений для масштабування, і саме це відокремлює його від RDMBS. щоб краще масштабувати великі набори даних, App Engine вніс деякі зміни (деякі означають багато змін).
RDBMS VS
Структура DataStore
У базі даних ми зазвичай структуруємо наші дані в Таблиці, Рядки, що в Datastore, вони стають видами та сутностями .
Взаємозв'язки
У RDBMS, більшість людей переслідує відносини «один на один», «багато в одного», «багато-до-багатьох», у сховищі даних, оскільки у нього немає речі «Не приєднується», але все ж ми можемо досягти нашої нормалізації за допомогою « ReferenceProperty ", наприклад, Приклад стосунків один до одного .
Індекси
Зазвичай у RDMBS ми робимо індекси, такі як Первинний ключ, Зовнішній ключ, Унікальний ключ та Індексний ключ, щоб прискорити пошук та підвищити продуктивність нашої бази даних. У сховищі даних вам потрібно зробити щонайменше один індекс на вид (він автоматично генерує, чи вам це подобається чи ні), оскільки сховище даних здійснює пошук вашої сутності на основі цих індексів і повірте мені, що це найкраща частина. У RDBMS ви можете шукати за допомогою неіндексне поле, хоча це займе певний час, але воно буде. У Datastore не можна здійснювати пошук, використовуючи властивість неіндексувати.
Граф
У RDMBS, набагато легше вважати (*) , але в сховища, будь ласка , навіть не думаю , що це в звичайному порядку (Так є лічильник функція) , оскільки вона має більш тисячі , і це буде коштувати стільки ж невеликий opertion як особи, це не добре, але у нас завжди хороший вибір, ми можемо використовувати лічильники осколків .
Унікальні обмеження
в RDMBS, ми любимо цю функцію, правда? але у Datastore є свій шлях. ви не можете визначити властивість як унікальну :(
Запит
GAE Datatore забезпечує кращу функцію LIKE (О, ні! У сховищі даних немає LIKE ключового слова) SQL, що є GQL .
Вставка даних / оновлення / видалення / вибір
Це там, де нас усіх цікавить, так як в RDMBS нам потрібен один запит на Вставити, Оновити, Видалити та Вибрати так само, як RDBMS, Datastore поставив, видалить, отримай (не надто хвилюйся), оскільки Datastore поставити або отримати з точки зору запису, читання, малих операцій (читання витрат на дзвінки в сховище даних ) та ось, де моделювання даних вступає в дію. ви повинні мінімізувати ці операції та тримати роботу програми. Для зменшення операції зчитування можна використовувати Memcache .