我使用的API对请求有限制。 API响应采用XML格式,通常大约为8 kB。简而言之:我想消除两次向API发送相同的请求。
可以有超过200万个请求及其适当的答案。因此,当我将大量的XML响应复制到MySQL中的记录时,如果我查询它会响应得足够快吗?
表格结构:
我发现了MySQL查询缓存,但我认为它对于请求的请求很有用。另一个可能会慢下来? 我也找到了Varnish,但在我看来更像是一个HTML /代码缓存。
答案 0 :(得分:1)
我假设:
response
(request_parameters
)...WHERE request_parameters = 'some string'
request_parameters
不会太长(不超过1000个字符)我建议:
删除您的ID列。虽然有些人建议总是使用整数作为主键,但我知道您并不是在尝试构建关系数据库。您只需要一张桌子进行存储。
将request_parameters
列类型更改为VARCHAR(x)
,“x”是参数字符串的最大预期大小。
将request_parameters
设为主键。
根据PLB的建议,存储XML响应的序列化版本。
2百万行这样的数据将需要几个Gb,加上索引的一些空间。如果您的系统上有大量可用内存,并且在重新启动MySQL时可以承担丢失所有数据的费用,那么您可能需要尝试使用MEMORY表。