2016 年 7 月,关系型数据库如何选择? PostgreSQL/MariaDB/MySQL,后端: Rails

2016-07-28 16:48:07 +08:00
 WildCat

最近有个小项目,短期未来可能涉及全文搜索。另外用户资料等一些信息也想用 JSON 字段存储。
MySQL/PostgreSQL 都添加了不错的 JSON 、全文搜索支持,隔壁帖子《站内全文搜索采用什么方案比较快?》 里有说 MySQL 很不错,我搜到一篇 MySQL Developer Team 的中文博客,看了下好像 MySQL 中文分词的配置极其简单,的确有点心动。

另外即使不用数据库做全文搜索,从 Ruby China 的经历 来看,Rails 集成 ElasticSearch 并不难。

MariaDB 都说性能很好,但是不清楚现在能超越 MySQL 多少?很多问题搜 MariaDB ,结果却是 MySQL 的,感觉好尴尬。

大家有什么建议呢?

1912 次点击
所在节点    数据库
31 条回复
Immortal
2016-07-28 17:58:48 +08:00
分词 搜索 可以考虑上 es
我觉得灵活才是最主要的 每个数据库有自己的特点和擅长 不一定要一棵树上吊死
jimmy0017
2016-07-28 18:01:28 +08:00
个人看起来数据库 rails 还是用 PostgreSQL 比较多。
搜索貌似大家都是 elasticsearch
自己做的话,就看你习惯啥了。还有看看 deploy 的环境。(比如 heroku 就是 PostgreSQL )
lightening
2016-07-28 18:07:57 +08:00
我现在是肯定不会再用 MySQL/MariaDB 了。 PG 各方面都比 MySQL 好,实在找不出不用 PG 的理由。

https://www.postgresql.org/docs/current/static/pgtrgm.html
pathbox
2016-07-28 20:49:04 +08:00
PG....................................
Kilerd
2016-07-28 20:51:36 +08:00
现在自己写的项目已经全面用 Mongo , 没有原因 ,就是那么任性。
jackysc
2016-07-28 20:52:37 +08:00
我记得 pg 有结巴分词的扩展
zhx1991
2016-07-29 00:05:23 +08:00
@Kilerd 大规模下 mongo 似乎坑相当多
Kilerd
2016-07-29 00:08:00 +08:00
@zhx1991 记得 mongo 作者写过一篇文章,就是说那些操不来 mongo 就说 它坑多的。
hyzjshwo
2016-07-29 00:09:21 +08:00
MariaDB/MySQL 吧,我们很后悔用 PG 了。。
shiny
2016-07-29 00:10:39 +08:00
@Kilerd 用 SQL 的想法去用 MongoDB 就会觉得坑;没有用过 MongoDB 的人应该谨慎。
zhx1991
2016-07-29 00:13:48 +08:00
@Kilerd https://engineering.meteor.com/mongodb-queries-dont-always-return-all-matching-documents-654b6594a827#.6e8y22c68

看这个, 我认为这种场景出现在一个数据库上是不可思议的.
zhx1991
2016-07-29 00:25:23 +08:00
真的建议用 mysql

业界非常成熟
wh1012023498
2016-07-29 00:28:12 +08:00
还是觉得用 ElasticSearch 比较好
Kilerd
2016-07-29 00:34:37 +08:00
@zhx1991 它的文章都说了 it is a rare condition. you can find it if you are lucky.

它还说 数据要足够大,而且还要执行 100K 次,一些天之后才有可能遇到。

我还能说什么,只能说 我不够 lucky [:doge:]
zhx1991
2016-07-29 00:41:27 +08:00
@Kilerd 所以我说大规模下是个坑, 而且文中说的那种情况在实际高并发场景下并不是 rare.
Layne
2016-07-29 00:44:35 +08:00
晚上刚看到一篇文章,说 Uber 从 Postgres 切换到 MySQL 了…
ZGLHHH
2016-07-29 00:48:27 +08:00
fy
2016-07-29 00:55:20 +08:00
@hyzjshwo 为啥后悔呢。。
hyzjshwo
2016-07-29 01:16:38 +08:00
@fy 当时用 PG 是为了解决以后地理位置检索的需求,然后 1 年后,我们其实没有使用 PG 任何有优势的特性,反而因为学习曲线的问题,遇到了索引加不上,性能等问题。所以我们出于对项目质量和成本的考虑,以后方案都选熟悉的,上手快的。
fy
2016-07-29 01:45:36 +08:00
@hyzjshwo 原来如此。不过 PG 提供的 array 、 JSON 字段之类倒是非常实用呀,而且再也不用纠结 innodb 和 myiasm ,个人还是挺喜欢的。也许没有表面看起来那么美好?

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

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

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

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

© 2021 V2EX