什么是数据库的性能限制?

假设存储在磁盘上,单个数据库服务器(无主从架构)有什么性能限制(read / s,write / s)? 根据磁盘的种类,有多less个读/写,写/ s? (SSD与非SSD),假设操作简单(通过主键select一行,更新一行,索引正确)。 我认为这个限制取决于磁盘寻道/写入。

编辑:我的问题是关于获得一个数据库支持的操作数量的粗略度量:更多的信息可以知道,如果一个新的function触发300插入/秒可以支持,而无需扩展额外的服务器。

您可以在这里阅读很多基准testing结果,就好像该网站是可靠的来源。

我可以如此大胆以至于build议您testing一下以获得您自己的查询的答案。 如果您的开发包中有Windows运行SSIO.exe来testing磁盘性能,以了解它如何执行任何操作。

然后运行性能监视器(假设你是在MS-SQL TKProf也许在Oracle上 – 不要使用mysql或其他的抱歉,会有一个类似的工具。)运行你的查询,看看有多less读/写,多lessCPU花了它。 然后,您可以比较SSIO和性能监视器号码,并根据您当前的设备缩放硬件要求来处理此更新所需的用户数量/频率。

话虽如此,即使在相当慢的磁盘上,对于任何合理的SQL Server,300行都是非常小的行数。 除非有大量的复合索引或blob等,我已经住在进程中,因为用户正在观看一个查询,创build1.5M行,在相对适中的硬件上运行一秒钟。

不能判断你的应用程序和负载没有基准。

这涉及到RAID级别,主轴速度,事务大小(不仅仅是“插入”),触发器,外键,超线程,服务器上的其他应用程序,服务器中的RAM,磁盘的排列方式(tempdb的单独卷,每个数据库t日志,中密度纤维板等),服务包级别,RAID控制器cachingconfiguration,CPU Ls +三级caching,核心数量,架构devise,代码…

扩大规模比扩大规模更容易:如果联合服务器或分区表,则会增加开销。 更便宜的增加内存和更多的主轴。

Paul Nielson的35k TPS是一篇很好的文章。 至less要比你的300左右高出100倍。