我有一个问题,我有大型数据库,需要很长时间才能访问,部分原因是它的规范化并需要很多连接(它现在非常类似于启动模式)。但是,我不关心写入时间/潜在的写入异常,并且需要数据库快速进行分析有人可以请指出适合分析的数据库模式的好文本而不是在线性能吗?
E.g。表:1表具有静态产品信息,表2具有产品被购买/查看的所有时间的实例/ ...对其执行的某些操作,以及为每个此类操作支付的成本。我的很多工作都涉及找到某些行为已经完成的产品。
感谢。
答案 0 :(得分:1)
“规范化”并不总是意味着“需要大量连接”。但是使用代理键(id号)通常会。
构建一个测试数据库,规范化为5NF,而不使用任何具有自然键的ID号。因此,例如,国家/地区(使用ISO代码),州,邮政编码,类别等没有ID号。
这种结构实现了空间/时间权衡。直到某一点,并且在某些条件下,自然键的执行速度将比代理项更快,因为“关键”信息(咳嗽)通常在自然键中携带。所以你不需要加入就可以了。但有一点是代理键更快,因为它们需要更少的I / O,并且更多行将适合页面。您需要进行测试以确定该点的位置,以及您是否可以使用它。
答案 1 :(得分:0)
保持您的架构不变 - 即“正确”,但在text search engine中索引完全非规范化(即准备渲染)版本的数据,例如lucene。
文字搜索引擎不提供更新或加入功能,但它们 FAST !你不会相信自己看到它之前有多快,但它会在几毫秒的数量级。
文本搜索引擎非常快,因为它们使用inverted index。我已经实现了几次,它总是值得的。您需要做的就是确保每次实际数据发生变化时,重新索引文本搜索引擎中受影响的内容。