我读过很多网站将索引与数据分开存储。
特别是在Azure上,索引将存储在Azure SQL 中,数据存储在Azure表存储中。
这可以提高性能,并允许您存储更多数据并有效地查询它。
我不确定如何构建系统来执行此操作。有人可以解释这个过程以及外部索引是如何实际运作的吗?
当你想在不同的列上有二级索引时会发生什么,这是如何工作的?
更新/删除/添加数据时怎么办?索引+实际数据如何更新?
答案 0 :(得分:2)
如果您不想在Sql中使用索引,请尝试使用Lucene.Net之类的索引引擎。在我的项目中,我将数据存储在Azure表存储中,并将它们编入Lucene索引中。 Lucene.Net有一个wrapper用于Azure。 这样你就不需要Sql了。表存储比Azure Sql便宜。
答案 1 :(得分:1)
常规群集和非群集索引也是如此。聚簇索引保存表中的所有数据,非聚簇索引仅包含索引的列,如果是堆(意味着没有聚簇索引)或者聚簇索引中的键,则返回到表的行定位器。
您拥有的索引越多,更新,删除和插入的成本就越高,因为当您插入表格时必须维护所有这些索引
因此,您可以将驱动器D和索引上的数据放在驱动器E上的另一个文件组中
SQL Azure数据库也不支持堆表,表必须具有聚簇索引。如果创建的表没有聚簇约束,则必须在表上允许插入操作之前创建聚簇索引。