关于单线程数据库与多线程数据库性能

前端之家收集整理的这篇文章主要介绍了关于单线程数据库与多线程数据库性能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
H2是一个单线程数据库,在性能方面有良好的声誉.其他数据库是多线程的.

我的问题是:多线程数据库何时变得比单个线程数据库更有趣?有多少用户?有多少个进程?什么是触发器?谁有经验分享

摘要

>通常的瓶颈是磁盘访问
> SSD很快,但很脆弱(故障程序是必须的)
>单个线程系统上的一个长查询将阻止所有其他查询
>配置多线程系统可能很棘手
>即使在单核系统上,多线程数据库也是有益的

解决方法

这是我的意见:

通常,DB系统的瓶颈(或最慢的部分)是磁盘. cpu仅在算术运算,处理或cpu执行的任何其他任务期间出现峰值.通过适当的体系结构,多线程可以帮助将查询负载抵消到cpu上,而不是进行慢速磁盘读/写操作.在某些情况下,使用cpu周期计算值更快,而不是创建计算列(之前已保存到磁盘)并从磁盘读取此列.

在某些RDBMS中,有一个临时DB(tempdb),该实例上的所有DB都使用它来进行排序,散列,临时变量等…多线程和拆分此tempdb文件可用于提高tempdb的吞吐量从而提高整体服务器性能.

使用多线程(并行),可以将查询的结果集拆分为在服务器的不同核心上进行处理,而不是单独使用一个核心.此功能并不总能提高性能,但有时会出现这种情况,因此可以使用该功能.

DB可用的线程用于多种用途:读取/写入磁盘,用户连接,后台作业,锁定/锁存,网络IO等等…根据操作系统体系结构,线程被抢先送入cpu并且使用等待和队列进行管理.如果cpu可以很快地处理这些线程,那么等待时间将会很短.多线程数据库将比单线程数据库更快,因为在单线程数据库中,只会回收一个线程而不是让其他部分可用.

可伸缩性也成为一个问题,因为管理和执行扩展的DB系统需要更多的线程.

猜你在找的MsSQL相关文章