Perché JOINS è deprecato per un database in memoria?

2

Correggimi se sto fraintendendo. Fare riferimento alla seguente frase:

Stack Overflow copied a key part of the Wikipedia database design. This turned out to be a mistake which will need massive and painful database refactoring to fix. The refactorings will be to avoid excessive joins in a lot of key queries. This is the key lesson from giant multi-terabyte table schemas (like Google’s BigTable) which are completely join-free. This is significant because Stack Overflow's database is almost completely in RAM and the joins still exact too high a cost.1

In realtà sto cercando di passare dall'interesse su una singola tecnologia come Asp.net MVC alla progettazione di architetture.

Puoi chiarire meglio la frase citata?

[1] link

    
posta M.F05051985 07.04.2014 - 11:40
fonte

1 risposta

7

Hai erroneamente interpretato la direzionalità della citazione.

I JOIN sono generalmente scoraggiati per i sistemi ad alto volume, perché sono costosi (poiché l'I / O è necessario più di una tabella). Quindi, inserisci il loro database nella RAM in modo specifico per evitare di essere colpito dai costi di I / O del doppio disco, e si scopre che anche senza I / O fisico, la ricerca nella doppia tabella è ancora troppo lenta. Questo mostra come i JOIN inefficienti si trovano su grandi volumi di dati.

    
risposta data 07.04.2014 - 11:50
fonte