这个需求选择什么数据库比较好呢?

2015-07-03 02:19:26 +08:00
 slogon

主要目标:存取每天的成交订单信息到库里,比如订单标题,价格等商品信息,供用户查询。
用户查询时,最主要的就是通过订单标题查询(商品详情暂时不考虑),用户输入关键字,能在订单标题中查询到所有相关的订单。
每天增量10w左右。
mysql怕量大了会慢,然后最关键的是查询,简单的like查询满足不了需求,希望像全文搜索那种,相关的都能被查到,而不是字符串完全一样才能被查到。。。
看了MongoDB的全文索引,可是不支持中文。。。
大家帮忙看看,用啥比较好呢?

5444 次点击
所在节点    程序员
26 条回复
Septembers
2015-07-03 02:40:05 +08:00
PostgreSQL
Septembers
2015-07-03 02:47:32 +08:00
(MySQL 单表1亿行 不分区连表都打不开
(PS:由于数据源/数据结构/硬件参数等问题 此回答仅供参考
xlrtx
2015-07-03 03:13:25 +08:00
不是很在行, 不知道用solr好不好..
xlrtx
2015-07-03 03:15:50 +08:00
@xlrtx 只是学过一些理论, 大型商用数据库最好用nosql, 方便做OLAP数据分析
xlrtx
2015-07-03 03:21:13 +08:00
@xlrtx 完全说了, 无视上面的答案吧~
yangqi
2015-07-03 03:52:36 +08:00
这种量肯定要设计成分布式的吧,不然不管什么数据库迟早会遇到问题
line
2015-07-03 07:36:47 +08:00
如果频繁的like,还是全放内存好了
mringg
2015-07-03 07:37:28 +08:00
感觉分表就可以,一个月一张表
wy315700
2015-07-03 07:49:11 +08:00
@Septembers
一亿条数据还到不了MySQL的瓶颈
innodb 毫无压力。
zhicheng
2015-07-03 08:00:08 +08:00
MySQL + ES 毫无疑问的。
beneo
2015-07-03 08:05:26 +08:00
MySQL + ElasticSearch,还要简单上阿里云吧
est
2015-07-03 10:21:57 +08:00
@Septembers 谁说的?QQ群那个表我就mysql 跑的。avg() 全表,10多亿行,30秒出结果。
yakczh
2015-07-03 10:33:26 +08:00
mysql 2000万条 秒查,再往上就要考虑分表
mozartgho
2015-07-03 10:49:32 +08:00
MySQL InnoDB完全满足你目前的需求,再大了可以考虑下Redis集群
albertlee
2015-07-03 10:57:27 +08:00
可以使用hbase来做,可以支持lz所说的场景
realpg
2015-07-03 11:02:32 +08:00
Mysql存数据, Elasticsearch做搜索引擎
hkbarton
2015-07-03 11:15:46 +08:00
(My/Postgre)Sql + ElasticSearch/Solr
lilydjwg
2015-07-03 11:21:36 +08:00
@Septembers MySQL 这么弱啊,难怪大家都在讨论 MySQL 分表分库呢。就没见 PostgreSQL 这么折腾。

PostgreSQL + ElasticSearch,虽然是 Java 的。推荐用 bigram 做索引,别折腾分词了。
slogon
2015-07-03 11:24:24 +08:00
@mozartgho mysql查询这部分怎么解决呢?
caoyue
2015-07-03 11:27:25 +08:00
我觉得 MySQL + ElasticSearch 应该够了
历史数据可以分表
查询所有数据的应该相对比较少,比如淘宝京东都是默认查三个月内的订单

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/202942

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX