Mysql(SQL RDB)与MongoDB(NoSQL)用于存储/查询来自GET请求的url参数

时间:2013-11-22 13:59:03

标签: mysql database database-design nosql

给定数十亿个以下可变长度的URL,其中参数的数量取决于参数“type”:

  • test.com/req?type=x&a=1&b=test
  • test.com/req?type=x&a=2&b=test2
  • test.com/req?type=y&a=4&b=cat&c=dog& .... z = 0的

我想在数据库中提取并存储其参数,基本上执行查询,例如“获取参数的每个可能值的出现次数”和“当”类型“是x”尽可能快,考虑到:

  • “type”有100个可能的值。
  • 数据库中不会有并发写入/读取。首先,我填充数据库,然后执行查询。
  • 将有~10个客户查询数据库。
  • 只有一台机器用于存储数据库(无群集/分布式计算)

以下哪个数据库选项是最快的选项?

1)使用EAV模式的MySQL

表1

列:id,类型。

行:

0   |   x
1   |   x
2   |   y

表2

列:table1_id,param,value

行:

0     |   a   |   1
0     |   b   |  test

2)NoSql(mongoDb)

请随意提出任何其他选择。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我认为您可以尝试使用ElasticSearch。它是非常快速的搜索引擎,可以用作面向文档(JSON)的NoSQL数据库。如果插入速度不起决定作用,那么它将是解决您问题的好方法。

这是json文档的结构。 {url:“你的网址”,输入:“从网址输入”,参数:{a:“val”,b:“val”...}} 或更简单 {url :“你的网址”,输入:“从网址输入”,a:“val”,b:“val”...}

参数的大小不固定,因为它是无方案的。