这个基于基表建立索引表的过程是机械的,它仅仅代表着现有的数据在不同的数据结构。(换句话说,如果你删除索引,不会从数据库中删除任何数据。)这是一个冗余的数据结构,只是为了提高查询速度,从原始表派生出来的。
以后你如果新增新的数据,数据库将自动在基表和索引数据结构之间保持事务一致性,在两个表中插入相同数据。这个过程是事务的,意味着,一旦出错回滚,索引表的修改也会回滚。
如果大型表上创建索引,可能需要几个小时,向一个生产现场数据库如果不断写数据,那么就会不断地建立索引。索引生成器真的像一个后台进程运行。
为了做到这些,数据库必须从某个时间的一致性快照建立索引,当索引构建时还需要对这个时间点以后的任何修改同时进行跟踪。这是一个很酷的功能。