我无法理解以下内容:
假设我有一个带有名称的表:Maria
, José
, John
, Isabel
, ... 假设我现在要搜索名称Maria
并获取所有带有名称的行Maria
。因为它是一个大表,所以我实现了一个B-Tree
(我知道,B-Trees 可以很好地处理范围,但我们只是为了它而假设它)。现在我的表中的每一行都有一个索引,我的数据库可以使用该索引通过B-Tree
. 但是,我不明白。如果我说
SELECT * FROM foo WHERE name = 'Maria';
数据库如何知道 Maria 有索引,比如 9834759?我的意思是,这必须写在数据库的某个地方,但查找它可能又要花费很多时间,因为它必须将它具有索引的每个名称与WHERE
子句中给出的我的名称进行比较。
我在遵循 B 树时遇到问题是否可以理解?或者更好的是,在数据库中执行?