首页 > 数据库 >【调优】从吞吐量角度提升数据库整体性能

【调优】从吞吐量角度提升数据库整体性能

时间:2024-04-07 18:01:23浏览次数:22  
标签:数据库 吞吐量 调优 内存 磁盘 性能 提升

不严谨的说:对数据库的使用就是I/O操作!
因此,如果有效的提升了数据库系统对磁盘的I/O,那么可以说整体性能就会得到有效地提升。

本文尝试给出一些最常被使用到的提升系统吞吐量的策略,希望起到抛砖引玉的效果。

1.尽量保证在内存中完成数据库操作
众所周知,内存的读写效率远远高于磁盘的读写效率。因此,如果能够保证尽量多的操作都在内存中完成,就是提高了系统的整体性能。
如果硬件条件允许的话,应该尽量为数据库服务器配置尽量多的内存。不过这不是根本的方法,根本的方法应该在应用程序设计上充分考虑。

2.利用磁盘缓存进一步提升吞吐量
即便是内存够大,应用程序设计的足够优化,在中大型应用系统中一样避免不了直接读写磁盘的情况。在此基础上我们可以考虑使用存储设备本身提供的缓存功能。这样,出现物理内存和缓存都无能为力的情况就大大地减少了。
提升数据库系统的吞吐量是一个系统工程,不应仅局限在数据库层面上想问题。

3.分散磁盘I/O
在使用磁盘时,我们应该选用多块磁盘代替一块超大容量的磁盘。这样可以有效的提升磁盘并行读写性能,因此可以提升系统的整体吞吐量。

4.使用比较大的数据库Block Size
这是一条需要权衡的经验。如果选择了很大的数据库块大小,会降低对单个块上数据的读写效率,存在较大的争用。与此同时,对某些数据迁移方法上也存在一些限制。除此之外,应该说增加数据库块大小都有利于提高数据库性能。例如,较大的数据块可以保证内存中存放更多常用的数据;防止索引的level过高等。
在能够控制弊端的前提下,建议使用较大的数据库块来进一步提升系统的吞吐量。

5.控制临时表空间的使用
如果系统中存在大量的排序操作,如大量的order by字句、group by字句、索引维护及数据分析。这些都会用到大量的排序空间。当PGA中无法完成排序时就会使用到临时表空间。结果无疑是性能和吞吐量上的降低。因此,我们应该在应用设计上充分考虑到这些影响性能的因素,将排序操作控制在尽量少的范围内。

6.提升系统CPU性能
提升CPU的处理性能在某种程度上就是提升系统的吞吐量,因为单位时间内处理的有效数据增加了。
这里需要注意的是,我们不应该盲目的增加CPU个数,我们应该力图提升每颗CPU的处理能力。因为过多的CPU会给操作系统带来管理上的额外消耗。

7.小结
以上六条是提高系统吞吐量较常用的方法。最最根本的还是应该根据业务特点给出最优的应用设计,在充分考虑到所有影响吞吐量的因素的基础上才能给出最好的设计方案。
欢迎大家就该问题给出实际经验上补充。

标签:数据库,吞吐量,调优,内存,磁盘,性能,提升
From: https://www.cnblogs.com/ivenlin/p/18119603

相关文章

  • 永不生锈的螺丝钉!一款简洁好用的数据库表结构文档生成器
    大家好,我是Java陈序员。在企业级开发中,我们经常会有编写数据库表结构文档的需求,常常需要手写维护文档,很是繁琐。今天,给大家介绍一款数据库表结构文档生成工具。关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。项目介绍screw......
  • 《计算机网络与数据库技术》-上机实验六
    一.【实验目的】(1)掌握变量的使用方法。(2)掌握函数的使用方法。(3)掌握Transact-SQL编程二、【实验准备】(1)已经接入局域网的网络实验室。(2)机器上已安装SQLServer。三.【实验内容】(1)用Transact-SQL编程:先为两个变量@x和@y赋值,然后求这两个变量的......
  • 数仓调优实战:GUC参数调优
    本文分享自华为云社区《GaussDB(DWS)性能调优系列实战篇七:十八般武艺之GUC参数调优》,作者:黎明的风。1.前言适用版本:【8.1.1及以上】GaussDB(DWS)性能调优系列专题文章,介绍了数据库性能调优的思路和总体策略。在系统级调优中数据库全局的GUC参数对整体性能的提升至关重要,而......
  • 数据库建表步骤
    根据三范式进行业务建模1)第一范式是指数据库表中的每个字段都是原子性的,即不可再分的。  例如:学生表,字段如下,其中班级字段就需要再次拆分,拆分后的属性如图2学生表id学生姓名学生年龄学生性别班级1张三8男一年级二班2李四8男一年级一班图一学生表id学生姓名学生年龄......
  • 零基础轻松入门Java数据库连接(JDBC)
    什么是JDBC?Java数据库连接(JDBC)就像是Java程序和数据库之间的翻译官。它是一个官方的标准接口集,让Java程序能和不同的数据库“对话”。甭管你是在跟MySQL、Oracle还是SQLServer打交道,只要有了JDBC,Java就能用统一的方式去执行查询、更新数据库的操作。为什么我们需要JDBC?......
  • 基于SpringBoot的“垃圾分类网站”的设计与实现(源码+数据库+文档+PPT)
    基于SpringBoot的“垃圾分类网站”的设计与实现(源码+数据库+文档+PPT)开发语言:Java数据库:MySQL技术:SpringBoot工具:IDEA/Ecilpse、Navicat、Maven系统展示系统功能结构图系统功能界面图用户登录、用户注册界面图4垃圾图谱界面图管理员登录界面图用户......
  • 基于SpringBoot的“汽车租赁系统”的设计与实现(源码+数据库+文档+PPT)
    基于SpringBoot的“汽车租赁系统”的设计与实现(源码+数据库+文档+PPT)开发语言:Java数据库:MySQL技术:SpringBoot工具:IDEA/Ecilpse、Navicat、Maven系统展示系统功能结构图管理员登录界面图管理员功能界面图用户管理界面图车辆品牌管理界面图车辆颜色管......
  • 数据库索引的原理
    索引的原理是通过创建额外的数据结构来提高数据库查询的效率。索引是一种有序的数据结构,类似于书中的目录,它存储了表中特定列的值和对应的行位置。通过索引,数据库系统可以快速定位所需数据的物理存储位置,从而加速查询操作。下面以一个示例来说明索引的原理:假设有一个学生表(St......
  • 在线视频教育平台|基于Springboot的在线视频教育平台系统设计与实现(源码+数据库+文档
    在线视频教育平台目录基于Springboot的在线视频教育平台系统设计与实现一、前言二、系统设计三、系统功能设计 1、前台:2、后台用户功能模块教师功能模块四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:✌️大......
  • Java/Mysql数据库+django学生就业管理系统 24237(免费领源码)计算机毕业设计项目推荐上
    学生就业管理系统摘 要随着社会的快速发展和人们生活水平的不断提高,旅游已逐渐成为人们生活的重要组成部分,用户能够获取旅游信息的渠道也随信息技术的广泛应用而增加。大量未经过滤的信息在展示给用户的同时,也淹没了用户真正感兴趣的信息。为了方便用户快速定位自己感兴趣......