Sql 高读写数据存储
我正在设计一个短链接服务。当人们点击我的一个短链接时,我想收集一些数据,如ip地址、用户代理等,然后将它们转发到他们的目的地。如果我的链接表增长到数千万,存储这些数据的最佳方式是什么。我不确定是否要使用弹性搜索之类的sql。这是一个基于观点的问题,但我会尝试回答。 操作的性能主要取决于将要进行的查询类型。所以真正的问题是你想用这些数据做什么?在处理大量数据时,一些概念如下: 批量插入 如果一次请求需要保存大量数据记录,则RDBMS和elasticsearch都为您提供了实现这一点的方法。(,) 数据分区 如果您处理的数据量很大,而且数据量不断增大,那么查询的执行时间会随着数据量的增加而增加。在某个时候,你可能会意识到,你需要申请 使用elasticsearch,您可以创建:您可以将此“流量分析”保存到2018-03-traffic、2018-04-traffic等索引中。。然后,您可以使用一个名称引用它们。请参阅问题。 Postgres,这也为您提供了 到目前为止还不错,让我们看看其他方面: 数据结构Sql 高读写数据存储,sql,
elasticsearch,Sql,
elasticsearch,我正在设计一个短链接服务。当人们点击我的一个短链接时,我想收集一些数据,如ip地址、用户代理等,然后将它们转发到他们的目的地。如果我的链接表增长到数千万,存储这些数据的最佳方式是什么。我不确定是否要使用弹性搜索之类的sql。这是一个基于观点的问题,但我会尝试回答。 操作的性能主要取决于将要进行的查询类型。所以真正的问题是你想用这些数据做什么?在处理大量数据时,一些概念如下: 批量插入 如果一次请求需要保存大量数据记录,则RDBMS和elasticsearch都为您提供了实现这一点的方法。(,)
如果不是(我想这就是你的情况),你可以使用elasticsearch
Elasticsearch更灵活地接受现有索引中的新字段,实际上您不需要做任何事情,在RDMS中,您应该自己管理它,或者更新表定义
注:
1。我对给定的RDBMS链接使用PostgreSQL,因为我对此很熟悉。
2。你也应该考虑RDBMS和弹性搜索。 非常感谢您或详细回答@Eirini。我主要关心的是缩短搜索时间。我希望能够尽快从传入uri中找到转发链接。这也取决于写操作(如果必须与读操作同时进行:)无论如何,如果使用正确的索引和适当的系统调优,您可以使用这两种方法实现目标。我希望,我帮了点忙