Are all modern RDBMS row oriented? Why? [closed]

末鹿安然 提交于 2019-12-22 04:18:23

问题


If one of relational databases paradigms is to be tuple oriented we have the biggest limitation here.

If one could design column oriented db, that would improve performance a lot. Vector operations would perform out of the box, indexing, hashing for simple symbol columns lookups, linked lists behind the scenes as engine.

Memory mapping: dumps in huge chunks in microseconds as well as loading those disk images.
And still have use well understood and standard language (SQL) that multiple vendors support.
Imagine how many tools could be designed for interfacing that thing, because of its simplicity.
Wouldn't it be more robust (and KISS at the same time)?

UPDATE
Thanks to all contributors.
Question has been unjustly closed, though i've found your all answers very informative.


回答1:


Are all modern RDBMS row oriented?

No. They're designed for specific tasks, say OLTP vs OLAP. Even the popular ones like MySQL have column-store engines (ex: Infobright). And there are DBMS's that are built as a column-oriented DB from the ground up as well.

Here's a potentially interesting read for you: C-Store: A Column-oriented DBMS (PDF format)

LucidDB is a popular column-oriented database for data warehousing and BI:

LucidDB is the first and only open-source RDBMS purpose-built entirely for data warehousing and business intelligence. It is based on architectural cornerstones such as column-store, bitmap indexing, hash join/aggregation, and page-level multiversioning. Most database systems (both proprietary and open-source) start life with a focus on transaction processing capabilities, then get analytical capabilities bolted on as an afterthought (if at all). By contrast, every component of LucidDB was designed with the requirements of flexible, high-performance data integration and sophisticated query processing in mind. Moreover, comprehensiveness within the focused scope of its architecture means simplicity for the user: no DBA required.

See its list of features for those that overlap with your interests here: LucidDB Features

And still have use well understood and standard language (SQL) that multiple vendors support.

You can use SQL with LucidDB.




回答2:


There are several column oriented SQL DBMSs and they have been around for years. Sybase IQ and Vertica being two well known examples. These are columnn stores in the sense that they use column based storage internally - they still use exactly the same SQL table-based data model as any other SQL DBMS.

Unfortunately the term "column oriented" or "column store" has much more recently been appropriated by some NOSQL databases to refer to an entirely different concept. Bigtable for instance. In this context column oriented means a different data model (not relational or SQL). This new definition of a decades-old term has lead to a deal of confusion - especially for people who hadn't heard the term until this newer wave of products came along.

http://dbmsmusings.blogspot.com/2010/03/distinguishing-two-major-types-of_29.html




回答3:


There are several column-oriented databases commercially available, for example Vertica. I worked on a specialized high insert rate, write-mostly store with fixed schema. While the optimized indexing was important, more important to us was the improved compression ratios achieved on columns with sparse value distributions.




回答4:


You mean like this?

Vector Database

You might be interested in OLAP as well.

OLAP




回答5:


Google's proprietary database is already column-based. That's one of the reasons your searches and other Googly things happen so quickly. See this wiki article which also includes links and references to other implementations.

As far as why this type of db is not in use? There are several reasons, one of which is that it's not necessary for all implementations. For example, you have a desktop computer at home running some desktop databases and not a mainframe running a massively scalable data repository. You could have the latter but using it to store your data would be akin to using a chain saw to cut your butter.

Besides, there are several other database types such as object oriented and ontological. No one kind will be right for everything, but for now, the tried and true row-based is in place and working for a lot of people.




回答6:


If you look for "nosql" you'll find a whole bunch of recent databases which aren't row-oriented, eg couchdb




回答7:


"If one could design column oriented db..."

  • Check out http://en.wikipedia.org/wiki/Column-oriented_DBMS.

  • Also, we have some good recommendations at recommendations for column-oriented database.



来源:https://stackoverflow.com/questions/3507058/are-all-modern-rdbms-row-oriented-why

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!