假设我有一个表业务,并且根据我的理解,我在列' country‘上创建了一个索引,DB将把表分解为(某种程度上)块,其中一个或多个块是基于每个国家的。就像这样:
chunk1 =美国国家的记录
chunk2 =美国国家的记录
chunk3 =国家的记录
chunk4 =NZ国家的记录。
如果我现在在‘’列上创建一个单独的索引,那么数据库结构会是什么样的呢?
数据库是否会创建两个单独的数据副本,一个按国家索引,一个由businessType索引?
或
DB是否会创建块,以便为每个块包含基于每个国家和每个业务类型的数据?就像这样
chunk1 =国家记录=美国& businessType = IT
chunk2 =国家记录=美国& businessType =金融
chunk3 =国家记录=美国& businessType =金融
chunk4 =国家记录=美国& businessType =金融
chunk5 =国家记录= IN & businessType = IT
chunk6 =国家记录= IN & businessType = IT
chunk7 =国家记录= IN & businessType =农业.
发布于 2011-06-20 09:34:44
假设我有一个表业务,并且根据我的理解,我在列' country‘上创建了一个索引,DB将把表分解成(某种程度上)块,其中一个或多个块是根据每个国家的情况而指定的
不是的。你的理解是错误的。
该表将不会被分解,它将有一个大块的记录,一开始按大致的插入顺序。
如果需要的话,索引是按块组织的(尽管它通常更像树结构)。
索引存储索引列值和指针(表本身中记录的位置)。
,如果我现在在'businessType‘列上创建一个单独的索引,那么数据库结构会是什么样的呢?
表存储结构根本不会改变。您将只需要一些额外的索引。
数据库将创建两个单独的数据副本,一个按国家索引,一个由businessType索引?
如果您在列'businessType‘上创建一个单独的索引,那么您将只有'businessType’组织一个树结构。这完全独立于前面创建的其他索引。
数据库会创建块以便每个块包含每个国家和每个业务类型的数据吗?
如果您在(country,businessType)上创建了一个复合索引,那么您实际上将得到一个由两列“分组”的索引:树的第一级将在country上分派,第二个级别(对于给定的国家)将在businessType上分配。
https://stackoverflow.com/questions/6409231
复制相似问题