微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

H2是一个单线程数据库,在性能方面有良好的声誉.其他数据库是多线程的.

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

摘要

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

解决方法

这是我的意见:

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

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

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

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

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

原文地址:https://www.jb51.cc/mssql/80211.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐