广告
返回顶部
首页 > 资讯 > 数据库 >怎样优化数据库
  • 278
分享到

怎样优化数据库

2024-04-02 19:04:59 278人浏览 薄情痞子
摘要

这期内容当中小编将会给大家带来有关怎样优化数据库,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、数据库优化是一个很广的范围,涉及到的东西比较多,并且每个特定的数据库,其具体的优化过程

这期内容当中小编将会给大家带来有关怎样优化数据库,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

1、数据库优化是一个很广的范围,涉及到的东西比较多,并且每个特定的数据库,其具体的优化过程也是不一样的.因为优化的很大一部分最终都要跟具体的数据库系统细节打交道,在此不可能针对所有的数据库都一一详细阐述,如果那样,恐怕写几本书都写不完.只能针对一些比较通用的,经常用到的的东西进行一个讨论

2、一般情况下,数据库的优化指的就是查询性能的优化(虽然严格上来说不应该是这样的),让数据库对查询的响应尽可能的快.

3、仅对数据库系统本身而言,影响到查询性能的因素从理论上来讲,包括数据库参数设置(其实就是通过参数控制数据库系统的内存,i/o,缓存,备份等一些管理性的东西),索引,分区,sql语句.数据库参数设置本身是一个很复杂的东西,分区则主要是针对大数据量的情况下,它分散了数据文件的分布,减少磁盘竞争,使效率得到提升。

数据库优化目标

根据角色的不同,数据库优化分为以下几个目标:

业务角度(关键用户):

减少用户页面响应时间

数据库角度(开发):

减少数据库SQL响应时间

数据库服务器角度(运维):

充分使用数据库服务器物理资源

减少数据库服务器CPU使用率

减少数据库服务器io使用率

减少数据库服务器内存使用率

指标

1. SQL平均响应时间变短

a. 优化前:数据库平均响应时间500ms

b. 优化目标:数据库平均响应时间200ms

2. 数据库服务器CPU占用率变少

a. 优化前:数据库高峰期CPU使用率70%

b. 优化目标:数据库高峰期CPU使用率50%

3. 数据库服务器IO使用率变低

a. 优化前:数据库IO WaiT为30%

b. 优化目标:数据库IO WAIT低于10%

数据库优化误区

在进行数据库优化的时候可能会有以下几个误区:

1. 优化之前一定要深入了解数据库内部原理

优化是有“套路”的,照着这些“套路”你也可以很好的完成数据库优化

2. 不断调整数据库参数就可以最终实现优化

有时候设计不合理怎么调整参数都不行

3. 不断调整操作系统参数就可以最终实现优化

同上

4. 数据库性能由应用、数据库架构决定,与应用开发关系不大

恰恰相反,应用开发的关系很大

5. 必须要做读写分离,必须要弄分库分表

数据量级只有达到一定的比例才有必要做读写分离,分表分库,否则徒增复杂度。一般来说oracle的单表量级可以达到1亿,Mysql到1000万~2000万

数据库优化流程

完整的数据库优化流程如下:

怎样优化数据库

首先需要尽可能的了解优化问题,收集问题期间系统信息并做好存档。根据当前系统问题表现制定优化目标并与客户沟通目标达成一致;通过一系列工具分析系统问题,制定优化方案,方案评审完成后由各负责人员进行实施。若达到优化目标则编写优化报告,否则需要重新制定优化方案。

数据库实例优化

数据库实例优化遵循三句口诀:日志不能小、缓存足够大、连接要够用。

数据库事务提交后需要将事务对数据页的修改刷( fsync)到磁盘上,才能保证数据的持久性。这个刷盘,是一个随机写,性能较低,如果每次事务提交都要刷盘,会极大影响数据库的性能。数据库在架构设计中都会采用如下两个优化手法:

a. 先将事务写到日志文件RedoLog(WAL),将随机写优化成顺序写

b. 加一层缓存结构Buffer,将每次写优化成顺序写

所以日志跟缓存对数据库实例尤其重要。而连接如果不够用,数据库会直接抛出异常,系统无法访问。

数据库参数优化

主流数据库架构都有如下的共同点:

数据缓存

SQL解析区

排序内存

REDO及UNDO

、LATCH、MUTEX

监听及连接

文件读写性能

接下来我们根据不同的数据库调整参数以使数据库达到最佳性能。

ORACLE

参数分类参数名参数值备注
数据缓存SGA_TAGET、MEMORY_TARGET物理内存70-80%越大越好
数据缓存DB_CACHE_SIZE物理内存70-80%越大越好
SQL解析SHARED_POOL_SIZE4-16G不建议设置过大
监听及连接PROCESSES、SESSIONS、OPEN_CURSORS根据业务需求设置一般为业务预估连接数的120%
其他SESSION_CACHED_CURSORS大于200软软解析

达梦数据库

参数分类参数名参数值备注
数据缓存MEMROY_TARGET、MEMROY_POOL物理内存90%
数据缓存BUFFER物理内存60%数据缓存
数据缓存MAX_BUFFER物理内存70%最大数据缓存
监听及连接max_sessions根据业务需求设置一般为业务预估连接数的120%


MYSQL(INNODB)

参数分类参数名参数值备注
数据缓存INNODB_BUFFER_POOL_SIZE物理内存50-80%一般来说越大性能越好
日志相关Innodb_log_buffer_size16-32M根据运行情况调整
日志相关sync_binlog1、100、01安全性最好
监听及连接max_connections根据业务情况调整可以预留一部分值
文件读写性能innodb_flush_log_at_trx_commit2安全和性能的折中考虑
其他wait_timeout,interactive_timeout28800避免应用连接定时中断

POSTGRES

参数分类参数名参数值备注
数据缓存SHARED_BUFFERS物理内存10-25%
数据缓存CACHE_BUFFER_SIZE物理内存50-60%
日志相关wal_buffer8-64M不建议设置过大过小
监听及连接max_connections根据业务情况调整一般为业务预估连接数的120%
其他maintenance_work_mem512M或更大
其他work_mem8-16M原始配置1M过小
其他checkpoint_segments32或者更大

总结

数据库的优化手法太多太多,有换磁盘阵列升级硬件,有改写SQL脚本添加索引,还有数据库参数调整优化性能,甚至还可以调整数据库架构。本文从数据库本身参数进行调优,大家根据上面几张表中的参数进行调整基本能达到数据库最佳性能的80%。

上述就是小编为大家分享的怎样优化数据库了,如果您也有类似的疑惑,不妨参照上述方法进行尝试。如果想了解更多相关内容,请关注编程网数据库。

您可能感兴趣的文档:

--结束END--

本文标题: 怎样优化数据库

本文链接: https://www.lsjlt.com/news/38303.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎样优化数据库
    这期内容当中小编将会给大家带来有关怎样优化数据库,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、数据库优化是一个很广的范围,涉及到的东西比较多,并且每个特定的数据库,其具体的优化过程...
    99+
    2022-10-18
  • MySQL数据库优化是怎么样的
    这期内容当中小编将会给大家带来有关MySQL数据库优化是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的...
    99+
    2022-10-19
  • 量比较多的数据库该怎样优化
    这期内容当中小编将会给大家带来有关量比较多的数据库该怎样优化,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。查询的优化  保证在实现功能的基础上,尽量减少对数据库的访问次数...
    99+
    2022-10-19
  • mysql数据库优化的步骤是怎样的
    这期内容当中小编将会给大家带来有关mysql数据库优化的步骤是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 mysql数据库优化的步...
    99+
    2022-10-19
  • MySQL数据库ORDER BY优化是怎样的呢
    今天就跟大家聊聊有关MySQL数据库ORDER BY优化是怎样的呢,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在使用order by时,经常出现U...
    99+
    2022-10-19
  • SQL索引以及数据库优化是怎样的
    这篇文章给大家介绍SQL索引以及数据库优化是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。(一)深入浅出理解索引结构实际上,您可以把索引理解为一种特殊的目录。微软的SQL SER...
    99+
    2022-10-18
  • 数据库查询的速度优化是怎样的
    数据库查询的速度优化是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。对于数据库查询的速度优化,关于数据...
    99+
    2022-10-19
  • mysql数据库优化思路与方向是怎样的
    mysql数据库优化思路与方向是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、基础优化mysql> show status l...
    99+
    2022-10-18
  • MySQL数据库优化的方案与实践是怎样的
    这篇文章给大家介绍MySQL数据库优化的方案与实践是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。最近一段时间,我们整理了一些关于Percona,Linux,Flashcache...
    99+
    2022-10-19
  • mysql数据库怎么优化
    mysql数据库怎么优化?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。mysql数据库怎么优化1.使用小的整数类型2.无特殊情...
    99+
    2022-10-18
  • 怎么优化Mysql数据库
    这篇文章将为大家详细讲解有关怎么优化Mysql数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。学无止境,数据库优化分为方方面面,在这里,我进行了比较全的总结,分享给正...
    99+
    2022-10-18
  • oracle数据库怎么优化
    本篇内容主要讲解“oracle数据库怎么优化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“oracle数据库怎么优化”吧!目录SQL优化的本质SQL优化Road...
    99+
    2022-10-18
  • 怎么优化SQL数据库
    怎么优化SQL数据库?这篇文章详细介绍了SQL数据库的优化原因和优化方案,阅读完整文相信大家对SQL数据库的优化有了一定的认识。一:优化说明A:有数据表明,用户可以承受的最大等待时间为8秒。数据库优化策略有...
    99+
    2022-10-18
  • 优化数据库
    1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。 例如,在定义邮政编码...
    99+
    2018-01-07
    优化数据库
  • 数据库优化
    字段优化:定义长度尽量使用2的幂作为长度,计算机分配空间使用次幂分配,减少碎片空间。 ...
    99+
    2021-04-04
    数据库优化
  • MySQL数据库优化
    数据库优化 数据库优化分为以下几个大类: SQL语句优化 事务优化 表结构优化 使用缓存和NoSQL数据库方式存储,如MongoDB/Memcached/Redis来缓解高并发下的数据库查询的压力 减少数据库操作次数,尽量使用数据库访问...
    99+
    2021-10-15
    MySQL数据库优化
  • 数据库SQL优化
    一:优化说明A:有数据表明,用户可以承受的最大等待时间为8秒。数据库优化策略有很多,设计初期,建立好的数据结构对于后期性能优化至关重要。因为数据库结构是系统的基石,基础打不好,使用各种优化策略,也不能达到很...
    99+
    2022-10-18
  • 怎样通过NoSQL内存数据库来进行Linux性能优化
    这期内容当中小编将会给大家带来有关怎样通过NoSQL内存数据库来进行Linux性能优化,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  我们不仅要选择适合自己口味的NoS...
    99+
    2022-10-18
  • MySQL数据库怎么进行优化
    这篇文章主要讲解了“MySQL数据库怎么进行优化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库怎么进行优化”吧!  MySQL数据库怎么优化...
    99+
    2022-10-18
  • 怎么优化MySQL数据库性能
    这篇文章主要为大家展示了“怎么优化MySQL数据库性能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么优化MySQL数据库性能”这篇文章吧。  1、选取最适用...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作