mysql - 哪个数据库 (DBMS) 最能处理大型表?

标签 mysql sql-server-2008 postgresql database-performance

我还有一个 very large table in SQL Server (2008 R2 Developer Edition) 存在一些性能问题。

我想知道另一个 DBMS 是否更适合处理大型表。我主要只考虑以下系统:SQL Server 2008、MySQL 和 PostgreSQL 9.0。

或者,正如上面提到的问题所回避的那样,表的大小和性能是否主要是索引和缓存的一个因素?

此外,更大程度的规范化会提高性能还是阻碍性能?

编辑:

下面的评论之一声称我含糊不清。我有超过 2000 万行(20 年的股票数据和 2 年的期权数据),我正试图弄清楚如何将性能提高一个数量级。我只关心读取/计算性能;我不关心写入性能。唯一的写入是在数据刷新期间,这些是 BulkCopy。

我已经有了一些索引,但希望我做错了什么,因为我需要大大加快速度。我也需要开始查看我的查询。

所提供的评论和答案已经帮助我了解了如何开始分析我的数据库。我是一名程序员,而不是 DBA(因此 Marco 的书籍推荐非常完美)。我没有太多的数据库经验,而且我以前从未分析过数据库。我会尝试这些建议并在必要时报告。谢谢!

最佳答案

80M 行并不大。您只需要学习如何设计和查询这种规模的数据。这可能包括规范化、非规范化、集群、索引,但通常权衡比它们看起来更深。添加索引实际上会损害性能即使是读取,例如,如果优化器不够好或决定了错误的统计信息。

我建议你阅读 Refactoring SQL Applications因为它不是从“数据库调谐器”而是从开发人员的角度来解决问题。

本书是The Art of SQL作者的作品,在多种场景下对Oracle、SQL Server和MySQL进行了比较。它很实用,并带有一些有用的图表。

除非被迫,否则我会远离 MySQL。根据“摇滚”的几种定义,Postgres 9.0 摇滚,但我仍会在生产中使用 8.4 几个月。

如果您希望人们帮助您处理此表,请提供尽可能多的详细信息:架构、索引、数据分布、使用模式等。

关于mysql - 哪个数据库 (DBMS) 最能处理大型表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3241561/

相关文章:

linux - 用于 s390x 的 Postgresql 9.5 或 9.6

c - PostgreSQL - 创建索引

mysql - 以IN子查询的顺序对查询结果进行排序

MySQL 存储函数返回对象而不是整数

sql-server - 检索附加了多个标签的项目

java - 将日期时间解析为 JAVA 日期

sql - Microsoft SQL 查询时间戳中的小时数

php - 生成随 secret 码并用 PHP 发送到电子邮件

php - 如果名称使用其他语言或特殊字符,为什么图像不显示?

postgresql - 如何配置 Grails 数据源插件以在数据源上具有模式搜索路径?