在什么时候一个数据库开始失去的性能吗?

  • 不物理数据库的大小问题吗?
  • 做记录数量的问题?
  • 是任何降解性能的线性或指数?

我有什么我认为是一个大型数据库,约有15分钟的记录,采取了几乎2GB。根据这些数字,是否有任何激励我干净的数据,或者我是安全的,以允许它继续扩展为多几年?

有帮助吗?

解决方案

物理数据库的大小不重要。记录的数量并不重要。

在我经历的最大的问题,你会跑,是不大,但数量的查询,你可以处理的时间。很可能你是要移动到主/从结构使读查询可以运行反对奴隶和编写查询的运行对的主人。但是如果你都没有为此做好准备,你可以随时调整索引的查询正在运行的速的响应时间。还有很多的调整,你可以做到网络堆和核在Linux,将有所帮助。

我有我的得到最多10GB,只有一个中等数量的连接和它处理的请求就好了。

我会首先注重在索引,然后有个服务器的管理看看你的操作系统,如果所有没有帮助也许是时候向执行主/从配置。

其他提示

一般来说,这是一个非常微妙的问题,而不是琐碎的任何责任。我鼓励你去读 mysqlperformanceblog.com高性能MySQL.我真的觉得没有任何一般性的回答。

我工作上的一个项目,其中有一个数据库有几乎1TB的数据。最重要的可扩展性的因素是RAM。如果索引表适合进入存储器和您的查询都是高度优化,可以提供一个合理的请求数量与平均机。

记录的数量做到问题,取决于如何你的表看起来像。这是一个区别有很大的varchar fields或一对夫妇只整数或多头。

物理数据库的大小事项,以及:认为备份,实例。根据你的发动机,你的物理数据库文件在增长,但不收缩,例如与少.因此删除了很多行,不会有助于缩你的身体文件。

有很多这个问题,并为在很多情况下恶魔是在细节。

该数据库的尺寸 不管.如果你有多于一个表,与超过一百万的记录,则性能开始实际上下降。记录的数量做当然会影响性能: MySQL可以是缓慢的大型的表.如果你打了一百万个记录的,你将获得性的问题,如果指数是不是设定权利(例如不指数领域,在"其中声明"或者"条件"在加入).如果你打了10万的记录,你会开始获得性的问题,甚至如果你有你的所有指数的权利。硬件升级,增加更多的存储器和多个处理器能力,尤其是存储器-往往有助于减少最严重的问题,通过提高性能再次,至少到一定的程度。例如 37去了信号从32GB到128GB RAM 为大本营的数据库服务器。

我将首先集中在你的指标,于有一个服务器的管理看看你的操作系统,如果所有没有帮助可能时对主/从配置。

那是真实的。另一件事,通常工作到仅仅是数量减少的数据的重复工作。如果你有"旧的数据"和"新的数据"和99%的查询工作,与新数据,只需将所有的旧数据的另一个表并不要看它;)

->有一个看看 分区.

2GB和大约15分钟的记录是一个非常小的数据库-我已经运行更大的对一个奔腾III(!) 一切已经运行很快..如果你是缓慢的,它是一个数据库/应用程序设计问题,不mysql之一。

这是一种毫无意义的谈论"性能数据库","查询性能"是一个更好的词这里.答案是:它取决于所查询的数据,它的运作上、索引、硬件等。你可以得到一个想法多少行都会被扫描和什么样的索引将使用与解释的语法。

2GB不真的算是一个"巨大的"数据库-这是一个中等大小。

还注意复杂的联接。交易的复杂性可能是一个很大的因素在外的交易量。

重构重查询有时提供一个很大的提高性能。

我曾经呼吁看mysql有"停止工作"。我发现,数据库文件的人居住在一个网络设备的申请人安装与NFS2和最大的文件大小的2GB。当然,该表已停止接受交易是完全2GB在磁盘上。但关于性曲线告诉我,这是工作像个冠军的权利,直到它没有在所有的工作!这些经验总是提供对我来说,作为一个很好的提醒,即有始终尺寸的上方和下方的一个自然的嫌疑犯。

一点考虑也是该系统的目的和的数据,在一天天。

例如,对于系统用GPS监视的车是不是有关查询的数据的位置的汽车,在前几个月。

因此可以将数据传给其他历史表为可能的协商和减少执行的时间一天一天的查询。

我目前正在管理一个数据库在亚马逊的云基础设施已增加到160GB。查询性能是罚款。这已成为一个噩梦是备份,恢复,加入奴隶,或其他任何交易与整个数据集,或者甚至言在大表。获得洁净进口的一个垃圾场文件已成为问题。为了使这一进程稳定的足以实现自动化,各种选择需要作出优先的稳定性表现。如果我们曾经从灾难中恢复使用一个SQL备份,我们想将下降。

水平扩展SQL也是非常痛苦的,并且在大多数情况下导致使用的方法,你可能不想当你选择了把你的数据在SQL在第一位。碎片,阅读奴隶,多主,et al.,他们都是真正糟糕的解决方案,增加复杂性的一切你曾经做的与数据库,并不是他们中的一个解决了的问题;只有减轻它在一些方面。我强烈建议在移动你的一些数据出的MySQL(或任何真正的SQL)当你开始接近一个数据集的一个尺寸在哪里这些类型的事情成为一个问题。

性能下降的问题几千行,如果数据库是不适当。

如果你有适当的索引,使用适当的引擎(不使用些多且预期),使用划分,划拨的正确存取决于使用和具有良好的服务器结构,MySQL可以处理的数据,甚至在千兆字节!

总有一种方法来提高数据库的性能。

这取决于您的查询和检验。

例如,我曾与一个表中的100 000药物,其中有一个列的通用名称在那里已超过15个字每个药物在这座。我把一个查询,以比较通用名药品之间的两个表格。查询需要更多的分运行。同样,如果比较的药物使用的药物指数,采用一个id列(如上面所说的),它只需几秒钟。

数据库的大小,不论在字和表格的行数。你会发现一个巨大的业绩之间的差异的光数据库和一个blob填补一个。一旦我应用卡住了因为我把二进制内部的图像的领域而不是保留图像在磁盘上的文件并把文件中的名称数据库。迭代,大量的行在另一方面是不是免费的。

不,它不会真正的问题。MySQL的速度大约是7亿行每秒。所以你可以它的规模相当一位

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top