数据库过大该怎么处理

数据库过大该怎么处理,第1张

问题分析:这种问题是由于服务器的数据库文件或者日志太大造成的,那么我们清理下日志或者收缩数据

库就可以了。解决方法:一

第一种解决方案,不限制数据库文件大小,当然,这是在您的服务器空间足够的情况下

第二种解决方案,直接清理数据库日志文件

我们打开数据库,然后选择分离数据库,找到日志文件并删除,然后附加,会自动产生

一个初始的很小的日志文件

第三种收缩数据库日志文件,设置数据库文件或者日志文件收缩到一定大小就可以。

以上各种解决方案,可以根据不同情况选择不同方案,为防止对数据库 *** 作不熟悉, ***

作失误,修改前请先备份好数据库。

以下纯属个人意见,请根据实际情况判断

(1)省下的数据量如果不大,那么可以考虑建立一张临时表,将需要保留的数据临时灌过去,然后truncate该表,然后再把数据灌回来。也可以考虑drop表,然后另外一张表改名,不过这样可能会有很多的后续 *** 作,比如索引的建立等等,因此一般不用drop *** 作。

(2)上亿的数据,应该有分区吧,如果可能的话,按照分区truncate,这样也可以。

(3)实在不能truncate,只能delete那么建议找个字段循环删除提交,每次不能太多,最好保持在5万以下(根据实际情况具体判断),毕竟delete是最消耗资源的dml语句。

(4)如果可能的话,不要同一时间 *** 作,分批 *** 作,这样能减少一部分数据库负载压力(特别是undo)。

(5)一定要闲时 *** 作,因为delete消耗资源比较多,会使数据库变慢。

应用场景当中经常会遇到模糊查询或多条件匹配查询,数据量较小的情况下通过简单的数据库模糊查询是可以解决的,但是对于数据量庞大的情况,数据库模糊查询就会出现性能问题。这种情况下的一种解决方案就是根据查询内容构建反向索引,借助搜索引擎进行查询,提升查询性能。

目前使用比较多的分布式搜索引擎是ElasticSearch。那么项目中如何使用ES?如何保证ES的数据更新?下面简单做个描述。

Elasticsearch使用可以简单分为两个阶段。数据初始化阶段、数据更新阶段。

数据初始化阶段。数据初始化常见的方式如下:

一、通过应用程序手动将数据库中的数据,调用ES接口API插入ES索引库中。

二、同过数据迁移工具将数据初始化到ES数据库。目前常用的ES同步工具有logstash-input-jdbc、DataX。通过同步迁移工具可以全量将数据库数据初始化到ES索引库中。

数据更新阶段。数据更新阶段常见的处理方式如下:

一、通过应用服务直接调用ES更新接口。这种方式实现比较简单但是对业务侵入性比较大。

二、对于实时性要求不高的可以采用定时任务监控数据表变化然后调用ES接口实现数据更新。

三、业务应用中通过发送消息异步更新数据。

四、通过DataX同步工具定时将修改的数据同步到ES库中。

上述是ElasticSearch使用的简单描述。使用的关键还是数据库与ES间的数据同步。能否用的好关键也是数据间的同步。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6647044.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存