我有一个包含10列的表格,我希望从表格中选择第1列和第9列。在RDBMS中,应在内部选择多少列?
答案 0 :(得分:2)
关系模型背后的基本思想之一是RDBMS用户根据表格和表格来表征他们的问题。表示抽象应用程序关系和描述抽象应用程序状态的查询,而RDBMS接口隐藏(尽可能多)表&查询由另一个这样的“逻辑”RDBMS层或其他“物理”范例层实现。 (因此,逻辑和物理data independence。)
您的问题只能回答特定版本的特定DBMS的特定实现。您可以在教科书和教科书中找到DBMS实现。幻灯片,其中有许多网站和.pdfs在线。
如果这是一个性能问题:在您熟悉架构设计和查询以及索引等基本性能问题之前,您不应该担心这种情况。谷歌搜索:Oracle的.pdf Oracle Database SQL Tuning Guide。 Bookboon的免费在线下载电子书Database Design and Implementation: A practical introduction using Oracle SQL。
答案 1 :(得分:1)
RDBMS将表数据存储在行和页中的行中。 RDBMS可以索引表数据。 RDBMS在内部读取索引或表中的每一行。
所以问题是要知道是否有索引。
在表根本没有索引的情况下,需要读取所有列,因为表行是所有列的组合
如果and index恰好具有两列,则仅读取两列以及对表行位置的引用。
如果索引具有两列加更多列,则优化器将选择theis索引,并读取更多信息,但少于表行。
在某些特殊情况下,由于使用了优化器(在SQL Server等“大” RDBS中……),如果有两个索引,一个包含第一列,另一个包含第二列,则可以同时读取两个索引,并且最终联接已执行。