Em uma de minhas leituras, notei a seguinte declaração para escolher aleatoriamente distribuído, shard keys
mas não consegui entender por que é dito isso. Alguém poderia me fornecer uma explicação detalhada sobre isso.
"A única desvantagem da distribuição aleatória shard keys
é que MongoDB
não é eficiente no acesso aleatório a dados além do tamanho da RAM."
Obrigada.
Embora seja difícil dizer com certeza sem o contexto completo, presumo que esteja se referindo à necessidade de manter o conjunto de trabalho na memória.
Uma chave de estilhaço distribuída aleatoriamente distribuiria a carga de trabalho em um índice inteiro, o que significa que todo o índice precisaria caber na memória para lidar com a carga de trabalho com eficiência. O desempenho se deterioraria assim que o tamanho desse índice em um estilhaço crescesse mais do que a RAM, pois o índice na chave do estilhaço precisaria ser dados com falha de página dentro e fora da memória.
Por outro lado, uma chave de fragmentação não aleatória pode ter um subconjunto "quente" que lida com a maior parte do conjunto de trabalho. Por exemplo, considere um site onde apenas as "postagens" mais recentes dos usuários são acessadas com frequência e as "postagens" mais antigas raramente são acessadas. Embora os índices em "postagens" possam ser maiores do que a memória disponível, apenas subconjuntos dos índices podem precisar caber na memória, reduzindo a pressão da memória e o potencial de falhas de página.