库就可以了。解决方法:一
第一种解决方案,不限制数据库文件大小,当然,这是在您的服务器空间足够的情况下
二
第二种解决方案,直接清理数据库日志文件
我们打开数据库,然后选择分离数据库,找到日志文件并删除,然后附加,会自动产生
一个初始的很小的日志文件
三
第三种收缩数据库日志文件,设置数据库文件或者日志文件收缩到一定大小就可以。
以上各种解决方案,可以根据不同情况选择不同方案,为防止对数据库 *** 作不熟悉, ***
作失误,修改前请先备份好数据库。
以下纯属个人意见,请根据实际情况判断(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间的数据同步。能否用的好关键也是数据间的同步。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)