gpt4 book ai didi

database-design - 如何分解包含 1 亿多条记录的表?

转载 作者:行者123 更新时间:2023-12-04 16:02:15 25 4
gpt4 key购买 nike

我们目前在我们的配对网站中为我们的客户存储了 52 个预定义问题的答案。

我们有超过 3000 万独立用户,总结了 52x3000 万行的最坏情况。在这 52 个问题中,有 11 个问题是必需的并且总是得到回答。

我们之前的解决方案是为每个问题打开一个答案表。该解决方案分发了我们的答案行,以便更快地插入/删除/更新。但这也给我们带来了非常规的编程,例如每次添加/更新问题时动态打开表格,或者如果要永久销毁答案表,则删除答案表。

我们想为我们的第三个版本提出一个更好的解决方案,但还不能走得太远。

任何想法以任何其他方式,也许是更传统的方式来实现这一点?

最佳答案

为什么你现在表现不好?您知道您是否受 IO 限制或页面生命周期短吗?在更改设计之前,您的公司需要确定您性能不佳的原因。

我猜你的硬件是

  • 小于 2 gig 的 SQL 内存
  • 在托管 SQL 的服务器上运行其他应用程序
  • 有一个 Raid 5 来托管你的数据库
  • 将日志文件与您的数据库位于同一磁盘
  • 将临时数据库放在与数据库相同的驱动器上

  • 我猜你的 SQL 表有
  • 每列都没有索引或索引
  • 每列都是相同的数据类型,并且
    长度 (varchar(256))
  • 每列允许为空

  • 最好的数据库设计是能够满足您的业务规则的。您的业​​务规则是否定义了报告系统或 OLAP?您的业​​务规则是否为应用程序定义了 SLA?

    我的建议是聘请一家在识别 SQL 性能不佳方面有良好记录的公司。首先实现他们的建议,然后重新设计以满足您的 SLA。如果知道如何使用 SQL Server 的 15 亿行,那么一张表中的行数并不多,OLAP 或报告。

    我真的不希望这听起来很刺耳,但如果没有对应用程序的所有性能方面进行调查,任何建议都会浪费您的时间。

    关于database-design - 如何分解包含 1 亿多条记录的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4561770/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com