Я хочу, чтобы найти правильный ключ осколка для документа, как это:хороший MongoDB ключ осколка для «домена» документа
{
"_id": "yahoo.com",
"c": {
"en": {
"bdy": ",
"cats": [],
"mDesc": "",
"mHEq": {},
"mKeyw": [],
"mNames": {}
}
},
"cLgth": 566,
"cType": "text/html",
"dTime": 1224,
"jobsDone": [
"rawdataload",
"hrefanalyze",
"metatagsanalyze",
"keywordanalyze",
"categoryfinder"
],
"langs": [
"en", "de"
],
"publishedOn": {
"sims": 1362752738996
},
"tld": "com",
}
Моего пользователя облицовочных запросы в основном получает домен по _id из Монго. Некоторые из них используют язык домена . Бэкэнд-запросы выполняют разные виды заданий «jobsDone». На основе этой информации выбираются различные диапазоны документов.
Так что я подумал о том, чтобы просто использовать «_id», который соответствует доменному имени, так как он имеет очень высокую мощность. Имеет ли смысл использовать хеш MD5 доменного имени для более равномерного распределения?
Я не говорю о «изоляции запроса». Поскольку большинство пользовательских запросов будут просто читать непосредственно для _id, это прекрасно, я думаю. Запросы бэкэнда заданий могут быть более длительными (разбрасывать/собирать), поскольку пользователь не видит его, но я решил оптимизировать его. Я добавляю поле «jobsDone» в качестве составного ключа осколков, чтобы распределить его по работам, которые уже запущены?
Можно ли использовать массив в качестве ключа осколка?
Спасибо за понимание!
Я использую _id с новым хэшированным ключом осколка, и это работает очень хорошо. Мы с этим хорошо распространяем документы 120M. – Fabian