漫谈数据库查询速度优化方案

##摘要

从事前端开发的都知道,页面显示的数据一定要及时的呈现,否则会影响用户体现.那么导致页面加载数据慢或者显示滞后的原因又是什么呢?

拿自己之前做项目经历给大家讲讲吧,之前做后台,当时的项目实时性都非常高,前端页面实时显示要求非常高 ,慢1秒显示都会导致用户的投诉,最后没办法,通过本地(磁盘)缓存跟数据表分割来解决这一问题.

##原因分析

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

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

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

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

##解决问题

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

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

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

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

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

###3、恰当地使用索引;

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

###4、表的拆分

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

###5、字段冗余

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

###6、从磁盘上做文章

数据存放的在磁盘的内、外磁道上,数据获取的效率都是不一样的;
###7、放弃关系数据库的某些特性
引入NoSQL数据库;
换种思路存放数据,例如搜索中的倒排表;

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图解AI

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值