百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> 实例解说数据库优化
分享文章到:

实例解说数据库优化

发布时间:09/01 来源:未知 浏览: 关键词:
从网上去搜数据库优化根本都是从SQL层次停止优化的,很少有说起到数据库本身的实例优化。就算有也都是基于某个特定数据库的实例优化,本文涵盖当前市面上所有主流数据库的实例优化(Oralce、MySQL、POSTGRES、达梦),依照文章的配置能够将你数据库机能用到80%或以上。

数据库优化办法论

这部分为理论知识,不感乐趣的同学可以直接跳到后面参数配置部分。

数据库优化目标

引荐 《mysql视频教程》

按照角色的不一样,数据库优化分为以下几个目标:

业务角度(关键会员):

减少会员页面响应时间

数据库角度(开发):

减少数据库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万

数据库优化流程

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

file

第一需要尽大概的理解优化问题,收集问题期间系统信息并做好存档。按照当前系统问题展现拟定优化目标并与客户沟通目标达成一致;通过一系列工具剖析系统问题,拟定优化方案,方案评审完成后由各负责人员停止实施。若到达优化目标则编写优化报告,不然需要从新拟定优化方案。

数据库实例优化

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

数据库事务提交后需要将事务对数据页的修改刷( 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软软解析

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或者更大

达梦数据库

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

总结

数据库的优化手法太多太多,有换磁盘阵列升级硬件,有改写SQL足本增加索引,还有数据库参数调整优化机能,乃至还可以调整数据库架构。本文从数据库本身参数停止调优,大家按照上面几张表中的参数停止调整根本能到达数据库最好机能的80%。

本文来自百分百源码网,mysql教程栏目,欢迎学习!

以上就是实例讲解数据库优化的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有175人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板