影响数据库查询效率的因素搜集

本文探讨了影响数据库查询效率的各种因素,包括Watermark效应、BLOB/CLOB字段滥用、操作系统参数调整、索引缺失或未使用、I/O吞吐量瓶颈、计算列的创建、内存不足、网络速度、数据量过大、锁和死锁、不必要的行和列以及查询语句优化。针对这些问题,提出了解决策略,如合理使用索引、优化计算列、增加内存、提高网络带宽以及编写高效的查询语句,以实现数据库性能优化。
摘要由CSDN通过智能技术生成
1. Watermark 效应。 当一个数据库运行很长时间(几个月,几年)表中的记录被反复的修改和删除后,大量的磁盘空间没有被回收, 外在的表现就是表占用的空间越来越大, 当需要执行全表扫描的查询时,出现查询缓慢的症状。

2. BLOB, CLOB字段的滥用。 两个表,一个有LOB类型的列,一个没有, 其中记录的条数都一样, 索引也一样, 那么查询数据一样嘛? 答案时否定的, 即使你没有查询LOB字段里面的内容, 有LOB类型的表也会比较慢。 这个在淘宝团队里面时做过验证的, 他们曾经使用的解决办法是把LOB字段单独提出来放在另外一张表里面。


3. 调整操作系统参数,例如:运行在UNIX操作系统上的ORACLE数据库,可以调整UNIX数据缓冲池的大小,每个进程所能使用的内存大小等参数。


其他常见的原因

1. 没有索引或者没有用到索引 数据库索引就像书籍中目录一样,使用户在访问数据库数据时,不必遍历所有数据就可以找到需要的数据。创建索引后,可以保证每行数据的唯一性,极大地提高数据检索效率,这是一中牺牲空间换取性能的方法。没有索引或者没有用到索引是数据访问速度慢最常见的因素,也是程序设计的一个缺陷所在。

2. I/O吞吐量小,形成了瓶颈效应 I/O吞吐量是影响数据访问速度的客观因素(硬件因素)。在一定的硬件环境下,利用优化的部署方案可适当提高I/O吞吐量。

3. 没有创建计算列导致查询不优化 计算列是一个比较特殊的列,不填写任何设计类型,用户不可以改变该列的值。计算列的值是通过一定的函数公式等以另一个或多个列
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值