社区
数据仓库
帖子详情
怎样提高数据库的性能,面试被问到的
q_man
2009-02-02 10:25:12
请高手给指导一下
...全文
141
3
打赏
收藏
怎样提高数据库的性能,面试被问到的
请高手给指导一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fenghuo107
2009-02-05
打赏
举报
回复
1、使你的数据库结构规范化,但是不要求一定达到第三范式,为了显示和打印目的可以有
数据冗余
2、评估你的系统中对性能影响的关键处,减少被频繁访问的核心表的数量,并在这些核心
表上重点优化索引,表结构(尽量紧凑)。典型的核心表是代码表。
3、对于统计类应用,如果可能应写成触发器和存储过程,这样就有可能把一个消耗大量时
间的统计运算分布到每INSERT,DELETE,或者UPDATE来处理,从而极大提高查询类操作
的速度。
4、明智地选择把什么字段包含进群聚索引,或者非群居索引。对于数据按群居键值分布的
查询选择群居索引最有效。其他索引也要针对业务进行选择。由于维护索引也要消耗系
统资源和时间,所以过多的索引对性能是损害甚至是毫无效果的。
5、如果可能,可以利用大数据库对SQL的一些特殊规定来进一步优化,比如查询暗示。
6、适当选择硬件,综合考虑CPU,内存,I/O系统的性能,以当前的CPU,内存配置来看,
很多数据库系统的瓶颈出在I/O系统上。所以如果有可能,最好使用RAID。
当然如果你有足够的财力,可以买更好的服务器,或者搞服务器集群就更利害啦。
7、可能的话,尽量使用存储过程,因为存储过程的执行计划可以重复使用,而且不需要
象普通由CLIENT提交的SQL那样进行处理和编译。
8、检查你的应用程序设计,如果有可能,尽量减少查询次数和在网络上往返的数据。为了
获取少量字段而写SELECT * 对性能的损害也比较利害。
9、在应用程序中协调并发和一致性之间的矛盾。并不是所有业务都需要放在事务中。大量
业务是允许脏读的,在不关键事务中使用脏读,或者读提交,可以大大降低DEADLOCK和
进程之间彼此等待的机会,从而把由于互相锁定资源引起的等待降低到最小。
不要在事务执行中进行大量计算或者与用户交互的操作,因为事务的执行在要求上是
不允许被打断的原子操作(回滚是失败的),所以事务应该多而短小。长事务会锁住
很多资源比较长的时间,因此也比较容易导致其他进程对资源的等待和死锁的机会。
10、评估你开发系统的关键业务,在很多数据库系统对性能的要求是彼此矛盾的,比如OLTP
应用和DSS是不同的。DSS倾向于使用各种索引加快检索速度,而大量的索引对OLTP则是
负担。
11、不要在应用程序中写怪异的SQL 查询,比如 WHERE money!>40000,这样的语句,这种
SQL查询,数据库的SQL优化器是无法进行优化的。
12、定期维护和管理你的数据库系统,压缩掉那些“垃圾”空间,很多数据库系统执行类似
删除,事务等操作的时候,并不回收无用的物理空间。所以,制定一份合理的数据库
维护计划,不要等日志文件或者LOG文件越长越大的时候才去整理数据库。
还有很多很多要注意的东西,。。。。。。
新丁11111
2009-02-03
打赏
举报
回复
优化的方面挺多的,不过以前只是看sql语句的优化,关注
ppp_10001
2009-02-03
打赏
举报
回复
影响oracle性能的方面很多,如硬件性能,sga的大小及其中的比例,表空间的大小,sql语句的质量...
Java
数据库
面试
题
Jav
数据库
础
面试
题.什么是三大范式2如何优化
数据库
,如何
提高
数据库
的
性能
?
mysql
面试
题-mysql经典
面试
题目-
数据库
的基本概念-SQL语法-事务处理-索引优化-
性能
调优-mysql-
面试
题目
为什么使用连接池可以
提高
数据库
访问
性能
? 什么是
数据库
事务隔离级别?列举一些常见的事务隔离级别。 什么是
数据库
索引类型?列举一些常见的索引类型。 什么是
数据库
备份和恢复?列举一些常用的
数据库
备份和恢复...
数据库
面试
SQL编写题目精讲
数据库
管理员(Database Administrator,简称DBA),是从事管理和维护
数据库
管理系统(DBMS)的相关工作人员的统称,属于运维工程师的一个分支,主要负责业务
数据库
从设计、测试到部署交付的全生命周期管理。...
免费下载非常详细的 Mysql
面试
知识点
SQL查询优化:了解索引的概念和使用方法,掌握如何优化查询语句以
提高
数据库
性能
。 4.
数据库
事务和并发控制:了解事务的概念、ACID特性以及并发控制的方法,能够处理并发访问和保证数据的一致性。 5.
数据库
...
数据库
常见
面试
题(附答案)
2.
数据库
隔离级别,每个级别会引发什么问题,mysql默认是哪个级别 脏读:事务B读取事务A还没有提交的数据 不可重复读:两次事务读的数据不一致 幻读:事务A修改了数据,事务B也修改了数据,这时在事务A看...
数据仓库
7,388
社区成员
6,742
社区内容
发帖
与我相关
我的任务
数据仓库
其他数据库开发 数据仓库
复制链接
扫一扫
分享
社区描述
其他数据库开发 数据仓库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章