• 请不要在回答技术问题时复制粘贴 AI 生成的内容
slogon
V2EX  ›  程序员

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

  •  
  •   slogon · Jul 3, 2015 · 6726 views
    This topic created in 4153 days ago, the information mentioned may be changed or developed.

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

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

    PostgreSQL + ElasticSearch,虽然是 Java 的。推荐用 bigram 做索引,别折腾分词了。
    slogon
    slogon
    OP
    Jul 3, 2015
    19
    @mozartgho mysql查询这部分怎么解决呢?
    caoyue
    caoyue
    Jul 3, 2015
    20
    我觉得 MySQL + ElasticSearch 应该够了
    历史数据可以分表
    查询所有数据的应该相对比较少,比如淘宝京东都是默认查三个月内的订单
    slogon
    slogon
    OP
    Jul 3, 2015
    21
    @zhicheng
    @beneo
    @realpg
    @hkbarton
    多谢几位,就选MySQL + ElasticSearch了
    slogon
    slogon
    OP
    Jul 3, 2015
    22
    也谢谢其他给意见的朋友
    hkbarton
    hkbarton
    Jul 3, 2015
    23
    @slogon MySQL的话可以看看这个版本: https://www.percona.com/software/percona-server/ps-5.6 比原生的community的版本好一点,而且percona也有很多配套的mysql运维工具
    hkbarton
    hkbarton
    Jul 3, 2015
    24
    percona toolkit: https://www.percona.com/software/percona-toolkit mysql ops 很常用的
    Ashitaka4
    Ashitaka4
    Jul 3, 2015
    25
    oracle?
    iyangyuan
    iyangyuan
    Jul 4, 2015 via iPhone
    26
    mysql按月分表就可以了,就是统计起来比较麻烦,至于全文检索,可以用solr索引标题,可以每个mysql表对应一个solr的core。估计系统能坚持30年以上,才会有性能问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2025 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 91ms · UTC 04:27 · PVG 12:27 · LAX 20:27 · JFK 23:27
    ♥ Do have faith in what you're doing.