目前,我在生产中有一个监视器应用程序。该监视器的工作是收集社交网络上的特定条目,如Facebook,Twitter,YouTube等。
这是一个来自Twitter的API调用的简单示例:
http://search.twitter.com/search?q=Stackoverflow&format=json
基本上,这就是系统的作用:
我们完成了两个表,一个表用于用户,另一个表用于tweet。
问题
在MySql数据库达到tweets表上的200.000条目之后(在最初的几个月中),可视化该数据的应用程序在对现有tweet执行选择查询时开始消耗太多资源。
为什么?
该系统具有独立的帐户,每个帐户都有与其特定业务相关的某些搜索词。执行选择时,我们只需要选择与我们的帐户条款相关联的内容。我们看不到与我们无关的推文。但是一条推文可能涉及多个帐户。
实际查询(伤了我的眼睛)
SELECT *
FROM tweets
WHERE
content LIKE '%searchterm1%'
OR LIKE '%searchterm2%'
OR LIKE '%searchterm3%'
OR LIKE '%searchterm4%'
OR LIKE '%searchterm5%'
OR LIKE '%searchterm6%'
OR LIKE '%searchterm7%'
OR LIKE '%searchterm8%'
(and son on...)
两种可能的解决方案
a)创建一个tweets_searches表,该表将具有两个外键:tweet_id和search_id。这样tweets表上的每个tweet都可以与一个特定的搜索词相关。
因此,我们将搜索这些表,而不是搜索特定的字符串。
b)继续搜索,但是使用进行全文搜索MATCH () AGAISNT ()
。
主要问题
这足以减少CPU和RAM等资源消耗吗?有什么我可以做的更好的吗?
我正在我的GTX 1060 6gb上使用Python中的Tensorflow 1.2训练LSTM。 在每个时代,我用这种方法保存模型: 一切正常,但在九个时代之后,当我试图用这种方法保存模型时,我得到了ResourceExhaustedError。 我在培训期间检查了我的资源,但没有耗尽任何资源。 我得到的错误如下: 2017-06-29 12:43:02.865845: W tenstorflo
问题内容: 我的问题: 当线程处于状态(非休眠)> 99.9%的时间时,JVM中的大量线程是否会消耗大量资源(内存,CPU)吗?当线程正在等待时,如果根本需要维护它们,需要花费多少CPU开销? 答案是否也适用于与非JVM相关的环境(例如linux内核)? 内容: 我的程序收到大量占用空间的程序包。它在不同的程序包中存储相似属性的计数。在收到包裹后的给定时间(可能是数小时或数天)之后,该特定包裹将过
我正在Openshift环境中部署一个Spring boot Web应用程序。由于我们在同一个引导项目中使用JSP和CSS等Web组件,因此我们将应用程序部署为Openshift环境中的WAR文件。我还添加了tomcat-embed-jasper来解析这些Web组件并执行WAR文件。 但问题是,当我在Openshift环境中部署它时,应用程序消耗了超过1GB的资源。有什么方法可以减少应用程序的内存
null 在这两种实现中,REST控制器都直接从存储库中获取数据,并将其作为列表RESP返回。作为通量。不执行进一步的应用程序逻辑。 我们对100个调用服务的用户进行了一个小型负载/性能测试,我们发现非反应实现的性能远远好于反应实现。 事实上,非反应实现不仅有更好的HTTP吞吐量,而且更有趣的是,它比反应实现消耗更少的CPU和线程!这与预期尤其相反,因为我们预期反应版本只需少量线程即可扩展,如ht
问题内容: 为了限制Java 7应用程序消耗的总内存,我可以使用以下公式(摘自本文): 最大内存= [-Xmx] + [-XX:MaxPermSize] +线程数* [-Xss] 删除PermGen之后,此公式对于Java 8应用程序将如何更改? 我应该使用选项“ -XX:MaxMetaspaceSize”来限制元空间消耗的最大内存吗? 问题答案: 是的,这里有代替。 还考虑限制直接ByteBuf
问题内容: 我有作为Java类的资源束,可从数据库中读取值。当我更新数据库时,我需要重新加载捆绑软件,但我不知道如何。有人帮忙吗? 鉴于我使用捆绑如下: 问题答案: 要么 调用此方法将重新加载资源,它将刷新包 参考