公司做小游戏之前用的 SQL Server,
另外一块短信对接项目用的 MongoDB,日志用的 MySQL。
后面因为项目比较多又不想付费把小游戏那块全部换成 MySQL 了。
最近业务量上来了,发现 MySQL 有点吃力。
请教一下现在哪些免费数据库坑比较少的呢。
有同事提议 MongoDB,但是之前好像比较火,
现在都没人吹捧了,加上坑好像比较多待考虑了。
MySQL、MariaDB、Percona、AliSQL、PostgreSQL、MongoDB
暂时不考虑 Oracle 和 SQL Server
各位 V 友用的啥,对应什么应用场景? 或者哪几个组合比较好。
![]() | 1 18258226728 2019-12-03 18:01:39 +08:00 mysql+mongodb+redis+es 吧,表设计、索引和优化做好,我感觉可以覆盖绝大部分场景了 普通的业务 mysql 就能搞定,数据量太大了可以分库分表 需要实时的 redis+mq 异步搞 一些非结构化的 mongodb 可以搞 需要搜索的 es 搞 看你是什么场景了,一般都是多个结合使用 |
2 lc7029 2019-12-03 18:05:32 +08:00 重要数据全在 Oracle,IBM 大型机上用过 DB2,不知道什么原因迁移到 Oracle 了。 存储是 NetAPP 的 SAN 网,FC 连接 Oracle 服务器,RAC 热备。 没有非结构化数据库。 感觉用什么数据库取决于需求,而不是为了用某种数据库而用某种数据库。 |
3 firstfire 2019-12-03 18:09:13 +08:00 MySQL 可以分库分表 ,推荐 sharding-jdbc |
![]() | 4 qhxin 2019-12-03 18:10:21 +08:00 ACCESS |
![]() | 5 wangyzj 2019-12-03 18:17:29 +08:00 @18258226728 再加个 hbase 吧 |
6 Zackkkk 2019-12-03 18:18:59 +08:00 ![]() 我们的数据量在 PB 级,目前我的项目用到的数据库: Mysql:业务 OLTP,数据量太大,后迁至 TiDB TiDB:业务 OLTP,不需要分库分表,前期坑比较多,需要专门的人维护。 Presto/Hive:大数据量的离线数据存储,数据仓库,数据可导到 Druid 与 ClickHourse。简单可以通过 Presto 直接查询 Hive,不过效率比较低。 Druid:统计数据可预计算,不适合数据检索,但不能有太多低基字段,否则存储成本。我们用在数据统计计算 ClickHourse:适合统计与数据检索,性能在 Presto 与 Druid 之间,但不能作为持久存储,一般 TTL 半年,否则存储成本太高。若需要大数据量的检索则选这个比较合适,目前我们用在前端数据上报。 |
7 Zackkkk 2019-12-03 18:22:36 +08:00 更正下 druid 不适合有太多高基数字符串字段(如 uid 这种),不是低基 |
8 kejxp1993 2019-12-03 18:24:32 +08:00 via Android sql server +redis+es |
![]() | 9 airyland 2019-12-03 21:19:56 +08:00 via iPhone pg |
![]() | 10 shiny 2019-12-03 21:24:23 +08:00 如果 MySQL 也用不好,很怀疑迁到其他数据库能撑多久。 |
![]() | 11 levelworm 2019-12-03 21:53:30 +08:00 via Android databricks, impala, vertica mysql, postgresql |
12 LockShell 2019-12-03 22:10:37 +08:00 MySQL, Redis, TiDB |
13 makisang 2019-12-03 22:28:07 +08:00 via iPhone @18258226728 请教下常说的非结构化数据库一般用来存什么?新手目前感觉所有数据都能结构化呀 |
![]() | 15 18258226728 2019-12-04 09:22:49 +08:00 @makisang 这个和场景有关,比如我有一个事件中心或者说是用户行为中心类似的服务(或者说是日志?),有个表保存所有事件,有登录事件,下单事件,付款事件等等,每个事件有部分字段相同,有部分字段是动态变化的。 登录事件:用户、登录时间、登录平台、ip 等 下单事件:用户,下单时间、购买平台、订单号、商品详单(数组,商品可能还包括商品信息等),金额等 付款事件:用户,付款事件、实际付款、优惠券什么的,等等 |
![]() | 16 18258226728 2019-12-04 09:24:47 +08:00 @wangyzj 嗯,没考虑数仓那部分,只加上 hbase 其实和 mongodb/es 类似了,考虑到数仓一个 hbase 也不够哈,又要多出好多东西 |
17 haha370104 2019-12-04 10:13:48 +08:00 @makisang 举个例子,比如现在有个前端活动页天天改,作为一个切图工程师实在是不想天天去改代码,你于是写了一套拖拽生成活动页的后台系统,通过 json 数据组装出活动页 这个 json 数据类似于{type: string, content: string, style: any}[]这样的形式,现在你需要存数据库。 这种数据很少会有检索的需求(但是很低频的情况下可能也会有,比如说产品希望统一把所有「用户」这个词改成「客户」),于是你按照结构化存储当然是可以的,但是每次组装都需要从库内完全遍历组合一遍,所以直接统一丢 MongoDB 是不是问题解决 |
![]() | 18 ClarkAbe 2019-12-04 14:09:14 +08:00 via Android Json 嵌入式加 map 缓存 |
19 qinchaofeng 2020-05-26 09:28:08 +08:00 OLAP 用 Vertica 和 GP 吧 |