在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
数据库性能如何优化?有哪些策略?谈到数据库的性能优化,这无疑是一个老生常谈的话题了。首先我们可以来看看影响数据库性能的因素,不外乎就是硬件、服务器系统、数据结构和SQL语句等等方面。下面我们来逐一针对这些可以进行优化的地方,详细分析一下具体的优化策略,感兴趣的朋友赶紧看下去吧!

优化策略一:调整硬盘I/O
这一步是在信息系统开发之前完成的。数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O负载均衡。
优化策略二:建立索引
减少数据访问,创建并使用正确的索引。数据库索引的原理非常简单,但在复杂的表中真正能正确使用索引的人很少,即使是专业的DBA也不一定能完全做到最优。索引会大大增加表记录的DML开销,正确的索引可以让性能提升100,1000倍以上,不合理的索引也可能会让性能下降100倍,因此在一个表中创建什么样的索引需要平衡各种业务需求。数据库优化第一步就是建立合理的索引,这也是最初级的优化,也是DBA常用的优化方案
优化策略三:调整数据库SQL语句
应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了ORACLE数据库的性能。ORACLE公司推荐使用ORACLE语句优化器(Oracle Optimizer)和行锁管理器(row-level manager)来调整优化SQL语句。
优化策略四:考虑应用程序结构设计
这一部分也是在开发信息系统之前完成,程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构。不同的应用程序体系结构要求的数据库资源是不同的。
优化策略五:考虑数据结构的设计
这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。
优化策略六:做好服务器内存分配
减少数据库服务器CPU运算,使用绑定变量,并且合理使用排序,减少比较操作,利用更多的资源。内存分配是在信息系统运行过程中优化配置的,数据库管理员可以根据数据库运行状况调整数据库系统全局区的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区的大小。需要注意的是,SGA区不是越大越好,SGA区过大会占用操作系统使用的内存而引起虚拟内存的页面交换,这样反而会降低系统。
优化策略七:调整操作系统参数
例如:运行在UNIX操作系统上的ORACLE数据库,可以调整UNIX数据缓冲池的大小,每个进程所能使用的内存大小等参数。
优化策略八:分库
分库是数据库优化的一种较高级手段,实际上是横向分表的衍生;一般需要有中间件或者客户端做一些工作实现,这里给大家推荐两个分库的代码:一个是mycat,基于阿里coba开源的数据库中间件,很容易实现分库分表、主从切换功能。
优化策略九:精简业务逻辑
要通过优化业务逻辑来提高性能是比较困难的,这需要程序员对所访问的数据及业务流程非常清楚。实际的业务总是十分复杂的,所以一般只是高级程序员更容易做出优化的逻辑,但是我们需要有这样一种成本优化的意识。
优化策略十:分析查询日志和慢查询日志
记录所有查询,这在用 ORM 系统或者生成查询语句的系统很有用。
log=/var/log/mysql.log
注意不要在生产环境用,否则会占满你的磁盘空间。
记录执行时间超过 1 秒的查询:
long_query_time=1
log-slow-queries=/var/log/mysql/log-slow-queries.log
以上就是数据库性能优化的策略分析,大家都学会了吗?如果在实际工作中,想要优化数据库,不妨把以上的做法实操一遍,相信对大家的工作会有很大的帮助。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java学习中关于并发编程的问题总结
Java编程开发学习需要掌握的知识点很多,并发编程作为Java学习中的难点,也是实际应用中最常用的。编写优质的碧昂发代码并不是一件容易的事情。但是如果我们对并发编程有了更多的认识和实践,就会有更多的方案和更好的选择来实现并发编程。下面就是针对Java学习中关于并发编程的问题总结。
12758
2019-08-08 14:08:47
Java课程设计参考文献推荐名单
实践出真知,对于广大Java学习者来说,Java课程设计可以充分锻炼到大家对理论知识的运用,并且发现自身学习上的不足再加以努力。为了解决大家在Java课程设计时遇到的问题,小编特地整理了参考文献的推荐名单,上面有100多篇文献及其相关信息,希望对大家有用。
13698
2019-08-29 11:00:25
基于Java的游戏设计之植物大战僵尸
植物大战僵尸这款游戏相信大家或多或少都玩过,那么大家有没有想过自己尝试着做一下植物大战僵尸的游戏设计呢。本文将基于Java语言为大家展示如何开发出植物大战僵尸游戏的简易版本,主要内容包括规则、对象、功能和背景音乐的相关内容设计,如果大家对此有兴趣的话,就接着看下去吧!
10769
2020-04-20 11:59:20
学习Java可以从事哪些工作?
作为刚入行Java编程开发的新人,都听说过Java编程语言是国内主流的编程语言之一,不但薪资水平高,而且就业岗位非常多。但是大家知道Java都可以做哪些方面的工作吗?或者说学习Java编程之后,就业方向有哪些呢?
6031
2020-07-17 10:01:37
学习Java真的可以改变你的人生?
学习Java真的可以改变你的人生?在疫情期间远程办公的方式越来越流行,互联网的发展也越来越迅速,学习一门技术以备后患。或许学习Java真的可以改变你的工作和生活方式!
5948
2022-03-25 14:53:48
