我想为我们开发的一个新系统设计一个数据库,数据应该来自两个不同的资源(来自两个不同系统的两个独立的数据库),其中一个拥有大量数据(例如交易历史记录)。
我读过有关“列式数据库”或“混合数据库”的内容,我认为对于整个表,我将使用基于行的表,但仅对于一个表,例如 T1(这是事务历史记录,我需要原始表中的特定列)我将使用基于列的存储,请注明原因:
这在 SQL Server 2016 中可能吗?引擎如何知道哪个是基于行的,哪个是基于列的?
接下来,在这样的混合数据库中应用数据挖掘算法有什么限制吗?
问候
SQL Server 是一种关系数据库,传统上以行形式存储数据,但它也支持列存储索引,这是一种以列格式组织数据的特殊类型的索引。列存储索引可以将数据仓库和分析工作负载的性能提高多达 100 倍。
https://www.linkedin.com/pulse/how-use-sql-server-columnar-datastore-baligh-mehrez/
因此,要回答 SQL Server 是否支持这一问题,您可以创建列存储索引,SQL Server 2016 中已支持该索引。
根据第一篇文章,这些是列存储索引对您没有好处的情况(引用):
您的场景(引用):
T1 上不允许更新,但是,您需要确保除了您计划的作业之外不允许删除和插入,或者在其他情况下很少允许删除和插入。列式数据与聚合配合得很好,但您需要使用聚合进行测试。
您需要使用柱状表格和普通表格进行实验并比较结果才能确定。