Я використовую Mongo з його драйвером Java і Morphia. Я позначаю цей клас:
public class Transaction {
@Id
private ObjectId id;
private String transactionUniqueIdentifier;
}
У консолі я бачу, що Монго зберігає транзакцію у формі, як {transactionUniqueIdentifier: "xjeer"}
Це означає, що я маю використовувати коротші назви властивостей("uuid" замість "transactionUniqueIdentifier"), щоб отримати меншу базу даних? Або ж є налаштування в Монго, який би для цього займався (створити коротше імена всередині ...).
Будь-який покажчик буде оцінений, thx.
Відповіді:
1 для відповіді № 1З морфією імена властивостей документа співпадаютьімена полів Java за замовчуванням. Ви можете назвати їх, однак ви хочете бути серіалізовано в mongodb, використовуючи анотацію @Property і надаючи будь-яке ім'я, яке вам подобається.
2 для відповіді № 2
В MongoDB немає внутрішнього відображення назв полів.
Незалежно від того, чи створювати коротші імена, чи ні, залежить від численних речей, включаючи використання документа в "Карта зменшення", загальний розмір документа та обладнання на ваших серверах.
Наприклад, якщо ваш документ простіше обробляти в програмі «Зменшення карти» transactionUniqueIdentifier
а не uuid
і документ досить малий (скажімо, близько 5KB кожен), і у вас є SSD (ймовірно, це не потрібно насправді), то зменшення назв полів стає майже марним.
Деякі стверджують, що це не просто, але використання в реальному світі диктує, що у вас є великі речі, про які треба турбуватися.
Однак, якщо вам доведеться мати багато полів із довгими іменами або якщо у вас було більше назв, ніж transactionUniqueIdentifier
то ви, можливо, захочете розглянути їх скороченняінакше ви можете витратити більшу частину вашого часу на завантаження імен полів документа з диска замість завантаження фактичних значень (оскільки назви полів будуть більші, ніж загальний розмір значень документів).
Однак існують плани стиснення назв полів, але наразі пріоритетними є інші функції.