当前位置:首页 > MySQL教程 > 正文内容

实例解说数据库优化【MySQL教程】,数据库,优化

搜教程4年前 (2019-12-02)MySQL教程215
从网上去搜数据库优化基础都是从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万

数据库优化流程

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

起首须要尽量的相识优化问题,网络问题时期体系信息并做好存档。依据当前体系问题表现制订优化目的并与客户沟通目的杀青一致;经由过程一系列东西剖析体系问题,制订优化计划,计划评审完成后由各担任职员举行实行。若到达优化目的则编写优化报告,不然须要重新制订优化计划。

数据库实例优化

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

数据库事件提交后须要将事件对数据页的修正刷( 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_SIZE 4-16G 不发起设置过大
监听及衔接 PROCESSES、SESSIONS、OPEN_CURSORS 依据营业需求设置 平常为营业预估衔接数的120%
其他 SESSION_CACHED_CURSORS 大于200 软软剖析

MYSQL(INNODB)

参数分类 参数名 参数值 备注
数据缓存 INNODB_BUFFER_POOL_SIZE 物理内存50-80% 平常来说越大机能越好
日记相干 Innodb_log_buffer_size 16-32M 依据运转状况调解
日记相干 sync_binlog 1、100、0 1平安性最好
监听及衔接 max_connections 依据营业状况调解 能够预留一部份值
文件读写机能 innodb_flush_log_at_trx_commit 2 平安和机能的折衷斟酌
其他 wait_timeout,interactive_timeout 28800 防止运用衔接定时中断

POSTGRES

参数分类 参数名 参数值 备注
数据缓存 SHARED_BUFFERS 物理内存10-25%
数据缓存 CACHE_BUFFER_SIZE 物理内存50-60%
日记相干 wal_buffer 8-64M 不发起设置过大太小
监听及衔接 max_connections 依据营业状况调解 平常为营业预估衔接数的120%
其他 maintenance_work_mem 512M或更大
其他 work_mem 8-16M 原始设置1M太小
其他 checkpoint_segments 32或许更大

达梦数据库

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

总结

数据库的优化手段太多太多,有换磁盘阵列升级硬件,有改写SQL剧本增加索引,另有数据库参数调解优化机能,以至还能够调解数据库架构。本文从数据库自身参数举行调优,人人依据上面几张表中的参数举行调解基础能到达数据库最好机能的80%。

本文来自ki4网,mysql教程栏目,迎接进修!

以上就是实例解说数据库优化的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16290.html

标签: 数据库优化
分享给朋友:

“实例解说数据库优化【MySQL教程】,数据库,优化” 的相关文章

MySQL找回用户数据的实例详解【MySQL教程】,MySQL,实例,数据

MySQL找回用户数据的实例详解【MySQL教程】,MySQL,实例,数据

事变经由 有天,我们公司外区的一个贩卖C说他8月3号之前的工作流纪录找不到了。问清启事,本来是更新了微信号(我们公司的工作流是基于企业微信开辟的)。经由剖析,微信号和流程数据并没什么关系,所以开端得出结论:原本只需要更新微信号的,效果我们公司的流程体系管理员把用户先删除,再创建了新的用户。...

mysql列column常用命令的运用总结【MySQL教程】,column,mysql,使用

mysql列column常用命令的运用总结【MySQL教程】,column,mysql,使用

本文主要内容mysql 列常用命令: 检察表的列的属性 describe table_name column_name show all column property检察一切列的属性 修正表的列属性 alter table <表名> modify <列> &...

MySQL两大存储引擎InnoDB与MyISAM的区分【MySQL教程】,InnoDB,MySQL,引擎

1.InnoDB存储引擎 MySQL5.5中InnoDB成为默许的存储引擎。InnoDB是事件型存储引擎,被设想用来处置惩罚大批的短时间事件。它的机能和自动崩溃恢复特征,使得它在非事件场景中也很盛行。 所以可以这么说:“除非须要用到某些InnoDB不具备的特征,而且没有其他方法可以替换,...

MySQL表数据文件破坏致使数据库没法启动详解【MySQL教程】,MySQL,导致,损坏

一、题目日记 2017-08-31 14:18:05 4122 [Note] InnoDB: Database was not shutdown normally! 2017-08-31 14:18:05 4122 [Note] InnoDB: Starting crash recovery...

MySQL中关于索引与触发器详解【MySQL教程】,MySQL,触发器,详解

1》索引的寄义和特性:     索引是什么,索引相当于字典内里的目次序表,比方查询一个“星”字,假如不依据拼音来找的话,那末我们须要把悉数字典悉数遍历查询一边。才查到这个字, 假如依据拼音来找的,那末只须要在几页音序表中查询。就能够经由过程音序就疾速查到,这个字在字典的哪一页。在数据库中,索引...

关于MySQL数据库 增编削查语句集锦【MySQL教程】,MySQL,数据库,语句

一、基础的sql语句 CRUD操纵: create 建立(增加) read 读取 update 修正 delete 删除 1、增加数据 insert into Info values('p009','张三',1,'n001','2016-8-30 12:9:8') ; 给特定的...