在线客服
扫描二维码
下载博学谷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
以上就是数据库性能优化的策略分析,大家都学会了吗?如果在实际工作中,想要优化数据库,不妨把以上的做法实操一遍,相信对大家的工作会有很大的帮助。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
知识点讲解:进程和线程
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。小编为大家整理了有关进程和线程的知识点讲解,希望可以帮助同学们掌握重难点。
7184
2019-07-18 23:40:42
浅析Java并发工具类在AQS实现
众所周知,AQS是一个Java提高的底层同步工具类。本文就AQS的资源共享方式,state的作用,自定义同步器的方法,CountDownLatch,Semaphore,Semaphore和RateLimiter的区别,CyclicBarrier几方面来为大家浅析Java并发工具类。
7566
2019-08-05 20:07:43
Java基础Git面试题整理及答案
由于Git是开源免费的,而且在Git中的绝大多数操作都不用连网,只需要访问本地文件和资源就行了。所以越来越多的开发者都开始使用Git,可以毫不夸张的说,Git是使用人数最多的版本控制系统。在Java基础面试题中,Git 也是一个常常需要准备的考点,本文为大家精选了十道Git面试题整理及答案,大家可以一起来看看。
6735
2019-11-14 15:37:06
学Java要多久才能编小程序?学什么?
小程序应用无需下载可直接使用,无需下载操作简便让许多人使用小程序、小程序开发涉及到编程语言、服务器、营业执照等,小程序开发一般需要几天到几个月,学习到掌握掌握小程序开发的时间因人而异,具体要看个人的基础情况。
4370
2021-01-18 10:42:38
Java开发岗位需求量大吗?市场行情怎么样?
互联网大厂每一次的动作都会带来一股网络热浪,前不久的“反996”如此,最近腾讯推出员工退休待遇方案亦是如此。虽然退休离我们还很远,但是只要关乎福利就是我们关注的事情。
3664
2021-11-10 11:01:57