- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我还有一个 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/
是否有一个java库能够将数据库从任何DBMS(Mysql,SQLServer,Oracle,SQLite,...)导出到任何DBMS? 最佳答案 这并不容易..但您可以尝试使用 apache tor
我正在寻找令人满意的选项来对我的 .NET DAL 类进行单元测试;由于它们是 DAL 类,因此它们直接使用 ADO.NET 访问数据库。目前,我使用 MSSQL 数据库的实例进行测试,但想知道有哪些
假设我有以下关系(表): 学生(身份证、姓名、家庭) 类(class)(id、标题、单位、引用) Std-Course (std-id, course-id)//std-id 和 course-id
假设我有一个表 Table1,其中包含属性 id、姓名、地址、薪水。现在,我编写以下查询: SELECT * FROM Table1 WHERE 2*Salary > (SELECT MAX(Sala
我们正在为场馆开发支付系统。现在我们正在考虑为我们的应用程序使用什么 DBMS。目前我们正在使用微软的 sql express 来存储我们的数据。但是因为该系统将在非常繁忙的场所使用,我们认为我们需要
接受这个查询: SELECT * FROM MyTable WHERE MyColumn = 'SomeValue' ORDER BY SomeFakeQualifier.MyCol
我需要一个 DBMS,但不知道该选择哪个。基本上,应用程序进行许多 INSERT/UPDATE,但也进行许多 SELECT。 SELECT 大多非常简单,只有一个字段。 我目前正在使用 MySQL +
这里有人可以澄清“DBMS”和“数据库服务器”之间的区别吗?还有,'MySQL'是数据库查询语言的名称还是DBMS的名称? 最佳答案 DBMS 代表数据库管理系统(参见维基百科 http://en.w
我们知道: A schedule in which transactions are aligned in such a way that one transaction is executed fi
我刚刚阅读了 DBMS 中 3NF 的定义,它指出: 函数依赖 X --> A 是允许的,如果:1. X 是 super 键。2. A 是某个键的一部分。 我有两个疑问: a:我不明白第二个条件对消除
几年来,我一直沉浸在 MsSql/MySql 的世界里,我决定再展翅飞翔。目前,我正在研究哪种 DBMS 擅长归档数据时所需的事情。例如。大量写入和低读取。 我已经看到了 NoSQL 运动,但我有一个
好的..我已经对此进行了研究,但我对此研究得越多,我就越感到困惑。所以想到在这里发帖。 DBMS 提供数据库服务器功能 DBMS 有一个服务器组件和一个客户端组件 DBMS = 数据库服务器软件 DB
如果我们使用外部过程,我可以用其他语言执行一些代码,我想使用一些数值方法库来做一些矩阵计算并将结果存储在 SQL、Oracle 或任何 DBMS 中,这可能吗? 也许在 SQL 中有一个表,并告诉外部
Augmentation功能依赖性中的规则指出 当 X -> Y 时, 然后是 XZ->YZ。 有人可以举一个真实世界的例子吗? 最佳答案 如果 X 是客户 ID,Y 是客户姓名,Z 是出生日期,则:
我想知道哪些 DBMS 在其查询计划/执行中实际使用了多线程? 最佳答案 Oracle 支持这一点,SQL Server 和 DB2 也是如此。不过,我不认为 MySQL 或 PostgeSQL 支持
数据库管理系统(尤其是MySQL)对表的最大行数有限制吗? 我想创建用于保存日志文件的表,它的行数增加得如此之快,我想知道我应该怎么做才能防止出现任何问题。 最佳答案 我认为没有官方限制,这将取决于最
因此,我正在努力思考整个“规范化”的问题。为了更好地理解它,我想出了一个存储歌曲的案例 假设我有以下数据库: 专辑表: album_name| genre album_1|
DBMS 中的空值代表什么? 是未赋值还是不适用还是零还是空格? 最佳答案 Null 是 SQL 中用来表示数据库中不存在数据值的特殊标记。由关系数据库模型的创建者 E. F. Codd 引入,SQL
DBMS 如何利用撤消缓冲区和重做日志文件来恢复对数据库所做的更改? 最佳答案 例如在 Oracle 上,重做日志文件记录由于事务和内部 Oracle 服务器操作而对数据库所做的更改。并且这些文件保护
是否有任何开源分层数据库或现有 RDBMS 之上的仿真? 我正在搜索一个 DMBS(或现有 RDBMS 的插件),它可以存储分层数据并允许对分层数据执行查询(类似于“SELECT LEVEL ...
我是一名优秀的程序员,十分优秀!