我想知道是否有办法在Apache / PHP服务器上捕获并发请求。通过这样做,我们可以提高应用程序的性能。为了说明我的观点,这是一个例子:
考虑一个端点:/add_post
。它只是向数据库添加一个帖子。想象一下,我们的服务器收到10个并发请求。这将是10个不同的MySQL查询。但是,如果我们能够捕获这些传入(并发)请求,我们原则上可以使用单个MySQL查询来完成作业。当然,这会提高性能。或者是吗?
答案 0 :(得分:0)
如果MySQL-Server在同一台机器上运行,或者至少在同一数据中心的机器上运行,那么延迟并不重要。 MySQL非常快,因此执行许多查询都没有问题。
您应该尝试加快PHP应用程序的引导和算法。它们对服务器的性能影响更大。
答案 1 :(得分:0)
为了结合Apache / PHP请求,你必须站在你的头上。这将比您可能获得的节省花费更多的精力和时间。
换句话说,HTTP请求彼此独立。将它们组合起来是混乱,复杂和缓慢的。
你的另一个问题......“批量import matplotlib.pyplot as plt
import numpy as np
# settings
h, w = 10, 10 # for raster image
nrows, ncols = 5, 4 # array of sub-plots
figsize = [6, 8] # figure size, inches
# prep (x,y) for extra plotting on selected sub-plots
xs = np.linspace(0, 2*np.pi, 60) # from 0 to 2pi
ys = np.abs(np.sin(xs)) # absolute of sine
# create figure (fig), and array of axes (ax)
fig, ax = plt.subplots(nrows=nrows, ncols=ncols, figsize=figsize)
# plot simple raster image on each sub-plot
for i, axi in enumerate(ax.flat):
# i runs from 0 to (nrows*ncols-1)
# axi is equivalent with ax[rowid][colid]
img = np.random.randint(10, size=(h,w))
axi.imshow(img, alpha=0.25)
# get indices of row/column
rowid = i // ncols
colid = i % ncols
# write row/col indices as axes' title for identification
axi.set_title("Row:"+str(rowid)+", Col:"+str(colid))
# one can access the axes by ax[row_id][col_id]
# do additional plotting on ax[row_id][col_id] of your choice
ax[0][2].plot(xs, 3*ys, color='red', linewidth=3)
ax[4][3].plot(ys**2, xs, color='green', linewidth=3)
plt.tight_layout(True)
plt.show()
比单个插入更快?”答案是肯定的。包含100行的单个INSERTs
的运行速度是100个单行INSERT
的10倍。但是,我再说一遍,在你描述的场景中不值得做。
Apache + PHP可以轻松处理每秒数十个,也许数百个网页。如果您的实现不能,那么通过尝试组合页面,解决方案不。