Я собираюсь переместить мой 500-миллиметровый стол строк из postgresql в очерченную коллекцию в MongoDB. Я нахожусь в середине выбора правильного ключа.MongoDB: используя modulo для вычисления ключа осколки
Стол сообщений (id, users_id, заголовок, содержание). Каждое сообщение принадлежит указанному пользователю. У пользователей есть от 100 до 1 миллиона сообщений.
Можно ли установить осколки ключа по модулю из users_id (например, users_id% 128)? Я запрашиваю базу данных WHERE users_id.
Возможно ли это? Это хорошая идея? Я спрашиваю, потому что, когда я ничего не нашел об использовании модуля в шадринговом ключе.
Основываясь на вашем описании, пользователь может иметь 1 миллион сообщений. Вы имеете в виду, что 1 миллион документов могут иметь одни и те же users_id? Если это так, клавиша осколка на {users_id} имеет низкую мощность, что означает, что может быть много документов, имеющих одно и то же значение ключа осколка и не сможет разбить. Вы можете рассмотреть очертание коллекции на составном индексе, например {users_id, _id}. Вы можете обратиться к http://docs.mongodb.org/manual/tutorial/choose-a-shard-key/ для получения дополнительной информации о выборе ключа осколка. –