在线客服
扫描二维码
下载博学谷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的地位。所以对于学习Java的小伙伴来说,不要担心学习了Java市场会不好,我们需要更加关注技术层面的优秀。那Java未来的发展方向有哪些呢?
9687
2019-06-14 17:25:35
Java并发编程原理解析教程
众所周知,Java并发编程是每一个Java学习者提升自我能力的一个重要学习阶段。在各大知名互联网行业中,Java并发编程都是从业者必须掌握的知识和技能,因此学习Java并发编程的重要性不言而喻。为了解决大家在自学道路上的阻碍,博学谷特地推出了Java并发编程原理解析课程。本文就来为大家详细介绍一下该课程的具体内容,下面就一起来看看吧!
6900
2019-11-04 12:53:15
Spring JdbcTemplate基本使用详解
本文将和大家聊聊Spring JdbcTemplate基本使用,内容包括JdbcTemplate概述、JdbcTemplate开发步骤、Spring产生JdbcTemplate对象、JdbcTemplate的常用操作。其中本文会详细为大家讲解JdbcTemplate开发步骤,帮助大家了解Spring JdbcTemplate基本使用。下面一起来看看吧!
7050
2020-04-14 14:26:25
Java在线开发社交类项目
随着一大批移动应用的爆发,社交应用作为最直接有效的交流方式,是人们碎片化时间使用频率最高的工具。博学谷紧跟当下行业需求,深度调研社交软件主体功能,采用一线开发人员开发了完整真实的社交项目《探花交友》,以应用于Java学科项目实战课程教学。下面我们就来一起看看这个Java在线开发的社交类项目吧!
9267
2020-07-29 15:26:00
Java开发在线学习网推荐
以往的学习主要是通过线下Java培训班学习,随着互联网的发展和疫情的催化,Java在线学习成为了大家选择的学习方式,这样的学习方式更加便捷,不用辞掉工作利用业余的时间就可以学习,更大的优势是不管再哪个地区都可以享有优质的教学资源。
8151
2021-05-17 14:23:19
