数据库查询速度优化技巧及解决方案

今天跟大家分享一篇刚哥写的关于数据库优化的文章,这篇文章会教会你面对问题解决的方法,真是很实用,这可是刚哥的经验之谈,感觉不错就分享给你的小伙伴吧!

原因分析

主要原因1:后台数据库中的数据过多,没做数据优化导致后台查询数据很慢

次要原因2:前端数据请求-解析-展示过程处理不当

次要原因3:网络问题所致

那么我们应该怎么做后台数据优化呢?

解决问题

这里总结了几种方案,如何提高数据库查询的速度,大家参考.

1、缓存,在持久层或持久层之上做缓存

使用ehcache缓存,这个一般用于持久层的缓存,提供持久层、业务层的快速缓存,hibenate默认使用的二级缓存就是ehcache;

2、数据库表的大字段剥离

假如一个表的字段数有100多个,学会拆分字段,保证单条记录的数据量很小;

3、恰当地使用索引

必要时建立多级索引,分析MySQL的执行计划,通过表数据统计等方式协助数据库走正确的查询方式,该走索引就走索引,该走全表扫描就走全表扫描;

4、表的拆分

表分区和拆分,无论是业务逻辑上的拆分(如一个月一张报表、分库)还是无业务含义的分区(如根据ID取模分区);

5、字段冗余

减少跨库查询和大表连接操作;,数据通过单个或多个JOB生成出来,减少实时查询;

6、从磁盘上做文章

数据存放的在磁盘的内、外磁道上,数据获取的效率都是不一样的;

7、放弃关系数据库的某些特性

引入NoSQL数据库;

换种思路存放数据,例如搜索中的倒排表;

 

干货如下:

1.字段适当添加索引,索引尽量添加数据唯一或是该字段数据量小的字段上

2.where条件中减少null判断

3.避免使用 <> 和 != 操作符

4.条件中的 or 使用union all 来代替

5.尽量少用in / not in / between and,都会导致权标扫描

6.使用exists() 代替 in()

 

索引添加方法:

1.索引尽量添加数据唯一或是该字段数据量小的字段上

2.过多的索引会降低insert和update的效率


转自:https://www.jianshu.com/p/fea61b518dc4

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
优化 Oracle 数据库涉及多个方面,以下是一些常见的优化技巧,以提高性能和效率: 1. 优化询语句:确保询语句使用适当的索引、正确的连接和过滤条件,并避免使用全表扫描。可以使用 `EXPLAIN PLAN` 命令来分析询计划,以找出潜在的性能问题。 2. 创建索引:对经常使用的列创建索引,以加快速度。但要注意不要过度索引,因为过多的索引可能会导致写操作的性能下降。 3. 优化表结构:根据需求调整表的结构,包括字段类型、长度、约束等。合理设计表结构可以减少数据存储空间,并提高询和更新性能。 4. 使用合适的数据类型:选择适当的数据类型来存储数据,避免使用过大或过小的数据类型,以减少存储空间占用和提高询性能。 5. 执行定期维护任务:定期进行数据库统计信息收集、索引重建、碎片整理等维护任务,以保持数据库的最佳性能。 6. 优化内存配置:适当调整数据库的内存配置,包括 SGA(System Global Area)和 PGA(Program Global Area)参数,以提高缓存效果和减少磁盘 I/O。 7. 并发控制:合理设置并发控制机制,如事务隔离级别、锁定策略等,以避免数据冲突和死锁。 8. 使用分区表:对大型表进行分区,可以提高询性能和维护效率,并实现更好的数据管理。 9. 使用连接池:使用连接池来管理数据库连接,以减少连接创建和释放的开销,提高系统的响应速度。 10. 监控和调优:使用 Oracle 提供的性能监控工具,如 Oracle Enterprise Manager、AWR(Automatic Workload Repository)等,及时发现和解决性能问题。 这只是一些常见的优化技巧,实际上还有更多的优化方法和策略,具体的优化方案需要根据实际情况来定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值