首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >优化数据库和POST请求性能的提示

优化数据库和POST请求性能的提示
EN

Stack Overflow用户
提问于 2009-04-05 07:15:16
回答 4查看 736关注 0票数 0

我正在开发一个应用程序,涉及多个用户实时交互。它基本上涉及从每个用户到服务器的大量AJAX POST/GET请求-这反过来又转换为数据库读写。服务器端返回的实时结果用于更新客户端前端。

我知道优化是一个相当棘手的专业领域,但你能给我什么建议来获得最大的运行速度-速度是最重要的,但目前一些POST请求需要20-30秒才能返回。

我想过的一种优化方式是加入POST请求,并将它们作为一个组8-10发送到服务器,而不是激发单个请求。我目前没有在数据库端使用缓存,也没有太多关于它是什么的知识,以及它在这种情况下是否有用。

另外,AJAX POST和GET请求在速度方面是否会产生相同的开销?

EN

回答 4

Stack Overflow用户

发布于 2009-04-05 07:17:44

缓存频繁使用的数据项,而不是不断地访问数据库(根据数据更改的频率确定过期时间)。

您可以通过缓存一些数据客户端来减少与服务器的通信吗?

顾名思义,GET的目的就是获取信息。它适用于在阅读要在页面上显示的信息时使用。浏览器将缓存GET请求的结果,如果再次发出相同的GET请求,它们将显示缓存的结果,而不是重新运行整个请求。这不是浏览器处理中的缺陷,而是故意设计为以这种方式工作,以便在GET调用用于预期目的时更有效。GET调用正在检索要在页面中显示的数据,而这种调用不会更改服务器上的数据,因此重新请求相同的数据应该会获得相同的结果。

POST方法用于更新服务器上的信息。这样的调用期望对存储在服务器上的数据进行更改,并且从两个相同的POST调用返回的结果很可能彼此完全不同,因为第二个POST调用之前的初始值将不同于第一个调用之前的初始值,因为第一个调用将至少更新那些值中的一些。因此,POST调用将始终从服务器获取响应,而不是保留先前响应的缓存副本。

Ref

票数 1
EN

Stack Overflow用户

发布于 2009-04-05 07:33:06

你使用的优化技巧通常与普通网站使用的技巧相同,只是周转时间更快。您可以考虑做的一些事情包括:

  • 预取GET请求被用户
  • 加载的可能性很高,就像米奇·麦子建议的那样,在两者之间使用缓存层。根据您的技术平台,您可以查看memcache,这很常见,并且有一些库用于对将以非常高的频率查询的数据进行反规范化的everything
  • Look。假设读操作比写操作更常见,如果您将工作负载转移到数据访问的写操作部分(而不是通过连接增加数据库负载),您应该会获得可观的性能提升。
  • 使用延迟插入为写操作提供优先级,并让数据库服务器优化批处理
  • 确保表上有智能索引,并找出它们提供的好处。如果由于高写入:读取比率而频繁地重新构建索引,则可能需要缩减查询
  • 在更一般的查询中检索数据,并在数据到达应用程序的业务层时对其进行过滤。例如,MySQL使用与特定查询匹配的非常特定的查询缓存。拉取给定集合的所有结果可能是有意义的,即使您将只显示x%。
  • 对于写入,请查看运行对数据库的异步查询(如果在您的系统中是可能的)。数据同步不必是即时的,它只需要(在大多数情况下)以完全格式化的状态显示
  • 缓存磁盘/内存中的公共页面,这样服务器就不必对它们进行太多的处理

总而言之,您可以做的事情有很多(它们通常归结为更小规模的一般开发实践)。

票数 0
EN

Stack Overflow用户

发布于 2009-04-05 09:11:43

常见的调整技巧是:-使用更多索引-使用更少索引-在文件系统、数据库、应用程序或内容上使用或多或少的缓存-在任何组件上提供更多带宽或更多cpu能力或更多内存-最大限度地减少任何类型通信的开销

当然,另一种选择是:0开发一组测试,最好是自动测试,以确定您的应用程序是否工作正常。

1测量应用程序的“速度”。

2确定它必须变得多快

3确定性能问题的根源:

典型的问题有:网络吞吐量、文件i/o、延迟、锁定问题、内存不足、cpu 4修复问题。

5确保它实际上更快

6确保它仍然正常工作(因此进行了上面的测试)

7返回到%1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/718508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档