【问题标题】:columnar database柱状数据库
【发布时间】:2016-06-04 20:09:24
【问题描述】:

我有一个销售数据库,我想根据这些类别选择获取客户详细信息。 我有大约 15 个类别,我的客户数据库有 500 万条记录。 每个产品可能属于多个类别。 我需要根据选择的类别检索客户名称。 将所有这些类别作为列或为产品和类别创建单独的表然后进行内部连接是更好的方法吗? 我想在性能方面哪个是更好的方法。

方法一:

这里 1 表示该产品属于该类别。

方法2:

【问题讨论】:

  • 方法 2 更好。它是可扩展的,如果您在方法一中获得新类别,那么您应该更改表结构。它在关系方面也是正确的。并且您可以在旋转的帮助下从接近 1 获取表格。
  • 感谢 gofr1。但我的问题是性能。加入 500 万条记录不会有问题吗?
  • @aditya,没有。 SQL Server 有效地处理JOIN,尤其是使用适当的索引。
  • 只是想提醒一下正确的索引:)
  • 感谢 gofr1 和 Felix 那么,最后的结论是什么?方法一还是方法二?

标签: sql sql-server data-warehouse database-performance


【解决方案1】:

第二种方法 (Approach 2) 是比创建单个表更好的解决方案,因为没有必要每个产品都可以在方法中包含所有类别,即使类别存在或不存在,您也可以通过创建单独的列来保留空间,并且如果将来增加一个类别,您将不得不改变表的当前结构,这将是一项艰巨的任务。

是的,加入会有点慢,但如果你正确创建索引,它会执行得更好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多