4 ms·
Standard row-oriented databases store columns on disk like so: ABCABCABCABC Vector databases store them like this: AAAABBBBCCCC This allows faster q
by jiggawatts 4y ago
Standard row-oriented databases store columns on disk like so:
ABCABCABCABC
Vector databases store them like this:
AAAABBBBCCCC
This allows faster queries if you just need one (or a few) columns, because unrelated columns don’t have to be processed at all. Caches are more efficient, vector CPU instructions can be used, etc…
The downside is that random single row access is more expensive because a row has to be reassembled from many locations.
- code_biologist 4y agoYou're describing a column store there, not a vector store.
- smitty1e 4y agoI always thought a columnar store was a series of key:value dictionaries that could produce an RDBMS table result on demand.
- jiggawatts 4y agoThat’s a specific physical implantation. If using a key-value storage system then the keys are: Row store: “table id; row id; column id” Column store: “table id; column id; row id” The difference is the order used to sort the data in storage. In reality, most column store systems use a more complex partitioning scheme with row groups and the like…
- smitty1e 4y agoI mean, sure. But even DNS is a key:value store, or would you say that's over-simplifying?