我感兴趣的数据库是:SQL Server 2008,MySQL和PostgreSQL 9.0。
一般来说,我想知道哪些会“放大”最好的。 我已经读过PostgreSQL用于比MySQL更好的扩展 ,但是与MySQL的更新版本的差别缩小了。
除了一般信息外,我也在为我的具体情况寻找build议:
我有一个拥有20年股票数据和2年期权数据的64位SQL Server 2008 R2开发者版数据库。 硬件是英特尔i7至尊与6核心,12 GB RAM,64位Windows 7。
数据库是相当大的,强烈的计算,如移动平均,可能需要长达7分钟。 此外,甚至在查询竞争之后,磁盘活动也相当可观。 我正在做存储过程中的所有计算。
我的系统太慢了,我正在努力提高它的性能和效率。 我目前正在改进我的数据模型并调整软件设置。 有什么build议么?
另外,什么时候应该考虑使用MySQL Cluster? (既然我在问,我相信答案是,“不是你的!”)
我的系统太慢了,我正在努力提高它的性能和效率。
内存太less
而且,最重要的是,像大多数人不了解数据库的真实情况,你会谈论很多关于内核和内存的知识(Win 7 – 请去除它并安装一个Windows Server),但完全忽略了对数据库最重要的一件事性能:DISCS。 你有多less张光碟?
例如,我运行一个期货数据库 – 我的SQL Server有一个6 Velociraptor JUST的数据,另外2个光盘tempdb和日志。 这是在一个硬件RAID控制器的SAS基础设施。 我不确定我喜欢IO性能;)
此外,甚至在查询竞争之后,磁盘活动也相当可观
获得光盘 – 或更好的SSD – 给你一个强大的光盘子系统。
如果您依赖存储过程处理大型数据集,那么您最终会在性能方面遇到困难。 如果您需要更快的响应时间,则可能需要考虑从DBMS卸载这些计算。
编辑:
我做了一个错误的假设,那就是你正在谈论一些难以对数据模型进行修改的交易系统。 我在这样做的大企业工作非常困难。 您也可以提前一次“卸载”计算。
在你做任何事情之前,你应该仔细研究查询计划,并且理解哪些查询使用了最多的资源以及为什么。 想想你实际在做什么 – 用计算移动平均值的例子,考虑你参考了不改变的历史数据。 如果您需要绘制1982-1992年IBM的52周移动平均线…为什么按需计算? 提前做! 存储容量一般都很便宜–IOPS和CPU通常很贵。
另一个我见过的事情是人们过度规范化(因为这被认为是“正确的事情”)有时候,特别是对于静态数据,反规范化通过消除连接来提高性能。