V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
5200
V2EX  ›  程序员

2019 快过了,各位现在公司用的什么数据库呢,分别对应什么应用场景?

  •  
  •   5200 · 2019-12-03 17:42:30 +08:00 · 4774 次点击
    这是一个创建于 1822 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司做小游戏之前用的 SQL Server,
    另外一块短信对接项目用的 MongoDB,日志用的 MySQL。
    后面因为项目比较多又不想付费把小游戏那块全部换成 MySQL 了。
    最近业务量上来了,发现 MySQL 有点吃力。
    请教一下现在哪些免费数据库坑比较少的呢。
    有同事提议 MongoDB,但是之前好像比较火,
    现在都没人吹捧了,加上坑好像比较多待考虑了。

    MySQL、MariaDB、Percona、AliSQL、PostgreSQL、MongoDB

    暂时不考虑 Oracle 和 SQL Server
    各位 V 友用的啥,对应什么应用场景? 或者哪几个组合比较好。

    19 条回复    2020-05-26 09:28:08 +08:00
    18258226728
        1
    18258226728  
       2019-12-03 18:01:39 +08:00
    mysql+mongodb+redis+es 吧,表设计、索引和优化做好,我感觉可以覆盖绝大部分场景了
    普通的业务 mysql 就能搞定,数据量太大了可以分库分表
    需要实时的 redis+mq 异步搞
    一些非结构化的 mongodb 可以搞
    需要搜索的 es 搞
    看你是什么场景了,一般都是多个结合使用
    lc7029
        2
    lc7029  
       2019-12-03 18:05:32 +08:00
    重要数据全在 Oracle,IBM 大型机上用过 DB2,不知道什么原因迁移到 Oracle 了。
    存储是 NetAPP 的 SAN 网,FC 连接 Oracle 服务器,RAC 热备。
    没有非结构化数据库。
    感觉用什么数据库取决于需求,而不是为了用某种数据库而用某种数据库。
    firstfire
        3
    firstfire  
       2019-12-03 18:09:13 +08:00
    MySQL 可以分库分表 ,推荐 sharding-jdbc
    qhxin
        4
    qhxin  
       2019-12-03 18:10:21 +08:00
    ACCESS
    wangyzj
        5
    wangyzj  
       2019-12-03 18:17:29 +08:00
    @18258226728 再加个 hbase 吧
    Zackkkk
        6
    Zackkkk  
       2019-12-03 18:18:59 +08:00   ❤️ 2
    我们的数据量在 PB 级,目前我的项目用到的数据库:
    Mysql:业务 OLTP,数据量太大,后迁至 TiDB
    TiDB:业务 OLTP,不需要分库分表,前期坑比较多,需要专门的人维护。
    Presto/Hive:大数据量的离线数据存储,数据仓库,数据可导到 Druid 与 ClickHourse。简单可以通过 Presto 直接查询 Hive,不过效率比较低。
    Druid:统计数据可预计算,不适合数据检索,但不能有太多低基字段,否则存储成本高。我们用在数据统计计算
    ClickHourse:适合统计与数据检索,性能在 Presto 与 Druid 之间,但不能作为持久存储,一般 TTL 半年,否则存储成本太高。若需要大数据量的检索则选这个比较合适,目前我们用在前端数据上报。
    Zackkkk
        7
    Zackkkk  
       2019-12-03 18:22:36 +08:00
    更正下 druid 不适合有太多高基数字符串字段(如 uid 这种),不是低基
    kejxp1993
        8
    kejxp1993  
       2019-12-03 18:24:32 +08:00 via Android
    sql server +redis+es
    airyland
        9
    airyland  
       2019-12-03 21:19:56 +08:00 via iPhone
    pg
    shiny
        10
    shiny  
       2019-12-03 21:24:23 +08:00
    如果 MySQL 也用不好,很怀疑迁到其他数据库能撑多久。
    levelworm
        11
    levelworm  
       2019-12-03 21:53:30 +08:00 via Android
    databricks, impala, vertica
    mysql, postgresql
    LockShell
        12
    LockShell  
       2019-12-03 22:10:37 +08:00
    MySQL, Redis, TiDB
    makisang
        13
    makisang  
       2019-12-03 22:28:07 +08:00 via iPhone
    @18258226728 请教下常说的非结构化数据库一般用来存什么?新手目前感觉所有数据都能结构化呀
    CoderGeek
        14
    CoderGeek  
       2019-12-03 22:51:02 +08:00
    @makisang 评论 恢复 消息 短信 复杂样式格式
    18258226728
        15
    18258226728  
       2019-12-04 09:22:49 +08:00
    @makisang 这个和场景有关,比如我有一个事件中心或者说是用户行为中心类似的服务(或者说是日志?),有个表保存所有事件,有登录事件,下单事件,付款事件等等,每个事件有部分字段相同,有部分字段是动态变化的。
    登录事件:用户、登录时间、登录平台、ip 等
    下单事件:用户,下单时间、购买平台、订单号、商品详单(数组,商品可能还包括商品信息等),金额等
    付款事件:用户,付款事件、实际付款、优惠券什么的,等等
    18258226728
        16
    18258226728  
       2019-12-04 09:24:47 +08:00
    @wangyzj 嗯,没考虑数仓那部分,只加上 hbase 其实和 mongodb/es 类似了,考虑到数仓一个 hbase 也不够哈,又要多出好多东西
    haha370104
        17
    haha370104  
       2019-12-04 10:13:48 +08:00
    @makisang 举个例子,比如现在有个前端活动页天天改,作为一个切图工程师实在是不想天天去改代码,你于是写了一套拖拽生成活动页的后台系统,通过 json 数据组装出活动页

    这个 json 数据类似于{type: string, content: string, style: any}[]这样的形式,现在你需要存数据库。

    这种数据很少会有检索的需求(但是很低频的情况下可能也会有,比如说产品希望统一把所有「用户」这个词改成「客户」),于是你按照结构化存储当然是可以的,但是每次组装都需要从库内完全遍历组合一遍,所以直接统一丢 MongoDB 是不是问题解决
    ClarkAbe
        18
    ClarkAbe  
       2019-12-04 14:09:14 +08:00 via Android
    Json 嵌入式加 map 缓存
    qinchaofeng
        19
    qinchaofeng  
       2020-05-26 09:28:08 +08:00
    OLAP 用 Vertica 和 GP 吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1074 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:26 · PVG 06:26 · LAX 14:26 · JFK 17:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.