gpt4 book ai didi

sql-server - 可处理超过 5 亿行的数据库

转载 作者:太空狗 更新时间:2023-10-30 01:38:14 25 4
gpt4 key购买 nike

我正在寻找一个可以处理(在合理的时间内在列上创建索引并在不到 3 秒内为选择查询提供结果)超过 5 亿行的数据库。低端机器(Core 2 CPU 6600、4GB、64 位系统、Windows VISTA)上的 Postgresql 或 Msql 会处理如此大量的行吗?

更新:问这个问题,我正在寻找我应该在低端机器上使用哪个数据库的信息,以便提供结果来选择在 where 子句中指定的一个或两个字段的问题。没有加入。我需要创建索引——它不能像在 mysql 上那样花费很长时间——来为我的选择查询实现足够的性能。 native 为测试PC,用于进行实验。

表架构:

 create table mapper {
key VARCHAR(1000),
attr1 VARCHAR (100),
attr1 INT,
attr2 INT,
value VARCHAR (2000),
PRIMARY KEY (key),
INDEX (attr1),
INDEX (attr2)
}

最佳答案

MSSQL 可以很好地处理这么多行。查询时间完全取决于很多因素,而不仅仅是简单的行数。

例如,它将取决于:

  1. 这些查询做了多少次连接
  2. 您的索引设置得如何
  3. 机器里有多少内存
  4. 处理器的速度和数量
  5. 硬盘驱动器的类型和主轴转速
  6. 行的大小/查询中返回的数据量
  7. 网络接口(interface)速度/延迟

拥有一个小表(少于 10,000 行)非常容易,需要几分钟来执行查询。例如,在总内存为 512MB 的 Atom 处理器上使用大量连接、where 子句中的函数和零索引。 ;)

要确保您的所有索引和外键关系良好,您的查询经过优化以消除不必要的函数调用并仅返回您实际需要的数据,还需要做更多的工作。此外,您还需要快速的硬件。

这一切都归结为您想花多少钱、开发团队的素质以及您要处理的数据行的大小。

更新由于问题的变化而更新。

这里的信息量仍然不足以给出真实世界的答案。您将只需要测试它并根据需要调整您的数据库设计和硬件。

例如,我可以很容易地在具有这些规范的机器上的表中拥有 10 亿行,然后运行“select top(1) id from tableA (nolock)”查询并在几毫秒内得到答案。出于同样的原因,您可以执行“select * from tablea”查询,这需要一段时间,因为尽管查询执行得很快,但通过网络传输所有这些数据需要一段时间。

重点是,您必须进行测试。这意味着设置服务器、创建一些表并填充它们。然后你必须通过性能调整来让你的查询和索引正确。作为性能调优的一部分,您不仅要了解需要如何重组查询,还要了解可能需要根据锁更换机器的哪些部分(即:磁盘、更多 ram、cpu 等)和等待类型。

我强烈建议您聘请(或签约)一两个 DBA 来为您做这件事。

关于sql-server - 可处理超过 5 亿行的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3779088/

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