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

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

  •  
  •   5200 · 358 天前 · 2885 次点击
    这是一个创建于 358 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    这种数据很少会有检索的需求(但是很低频的情况下可能也会有,比如说产品希望统一把所有「用户」这个词改成「客户」),于是你按照结构化存储当然是可以的,但是每次组装都需要从库内完全遍历组合一遍,所以直接统一丢 MongoDB 是不是问题解决
    ClarkAbe
        18
    ClarkAbe   357 天前 via Android
    Json 嵌入式加 map 缓存
    qinchaofeng
        19
    qinchaofeng   183 天前
    OLAP 用 Vertica 和 GP 吧
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1155 人在线   最高记录 5268   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 19:30 · PVG 03:30 · LAX 11:30 · JFK 14:30
    ♥ Do have faith in what you're doing.