最近有个小项目,短期未来可能涉及全文搜索。另外用户资料等一些信息也想用 JSON 字段存储。
MySQL/PostgreSQL 都添加了不错的 JSON 、全文搜索支持,隔壁帖子《站内全文搜索采用什么方案比较快?》 里有说 MySQL 很不错,我搜到一篇 MySQL Developer Team 的中文博客,看了下好像 MySQL 中文分词的配置极其简单,的确有点心动。
另外即使不用数据库做全文搜索,从 Ruby China 的经历 来看,Rails 集成 ElasticSearch 并不难。
MariaDB 都说性能很好,但是不清楚现在能超越 MySQL 多少?很多问题搜 MariaDB ,结果却是 MySQL 的,感觉好尴尬。
大家有什么建议呢?
1
Immortal 2016-07-28 17:58:48 +08:00
分词 搜索 可以考虑上 es
我觉得灵活才是最主要的 每个数据库有自己的特点和擅长 不一定要一棵树上吊死 |
2
jimmy0017 2016-07-28 18:01:28 +08:00
个人看起来数据库 rails 还是用 PostgreSQL 比较多。
搜索貌似大家都是 elasticsearch 自己做的话,就看你习惯啥了。还有看看 deploy 的环境。(比如 heroku 就是 PostgreSQL ) |
3
lightening 2016-07-28 18:07:57 +08:00
我现在是肯定不会再用 MySQL/MariaDB 了。 PG 各方面都比 MySQL 好,实在找不出不用 PG 的理由。
https://www.postgresql.org/docs/current/static/pgtrgm.html |
4
pathbox 2016-07-28 20:49:04 +08:00
PG....................................
|
5
Kilerd 2016-07-28 20:51:36 +08:00
现在自己写的项目已经全面用 Mongo , 没有原因 ,就是那么任性。
|
6
jackysc 2016-07-28 20:52:37 +08:00 via iPhone
我记得 pg 有结巴分词的扩展
|
9
hyzjshwo 2016-07-29 00:09:21 +08:00
MariaDB/MySQL 吧,我们很后悔用 PG 了。。
|
11
zhx1991 2016-07-29 00:13:48 +08:00
@Kilerd https://engineering.meteor.com/mongodb-queries-dont-always-return-all-matching-documents-654b6594a827#.6e8y22c68
看这个, 我认为这种场景出现在一个数据库上是不可思议的. |
12
zhx1991 2016-07-29 00:25:23 +08:00
真的建议用 mysql
业界非常成熟 |
13
wh1012023498 2016-07-29 00:28:12 +08:00
还是觉得用 ElasticSearch 比较好
|
14
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:] |
16
Layne 2016-07-29 00:44:35 +08:00
晚上刚看到一篇文章,说 Uber 从 Postgres 切换到 MySQL 了…
|
17
ZGLHHH 2016-07-29 00:48:27 +08:00
|
19
hyzjshwo 2016-07-29 01:16:38 +08:00
@fy 当时用 PG 是为了解决以后地理位置检索的需求,然后 1 年后,我们其实没有使用 PG 任何有优势的特性,反而因为学习曲线的问题,遇到了索引加不上,性能等问题。所以我们出于对项目质量和成本的考虑,以后方案都选熟悉的,上手快的。
|
20
fy 2016-07-29 01:45:36 +08:00
@hyzjshwo 原来如此。不过 PG 提供的 array 、 JSON 字段之类倒是非常实用呀,而且再也不用纠结 innodb 和 myiasm ,个人还是挺喜欢的。也许没有表面看起来那么美好?
|
21
haoc 2016-07-29 02:33:42 +08:00
uber 不是刚从 postgres 切回 mysql ?主要看场景吧。
|
22
moult 2016-07-29 09:02:40 +08:00
在 PostgreSQL 和 MySQL 的选择上,主要还是看业务和数据结构需求,当然更要看技术和运维的实力,有调校能力情况下,两者的差距没想象中那么大。
然后 MySQL 衍生版本的选择上, MariaDB 、 Percona 都在原版本上加上自己的特征,如果这些特征都用不到的话,那就看个人喜好或者掷骰子吧! |
23
songjiaxin2008 2016-07-29 09:03:21 +08:00 via iPhone
建议用 PG 吧,对于 Rails 已经是标配了,搜索交给专业的人来做(ES)。
|
25
dodo2012 2016-07-29 09:41:46 +08:00
全文检索就用 es 吧,和 rails 结合完美, db 一直用 pg 的,现在 rails 也主推 pg
|
26
strwei 2016-07-29 13:56:58 +08:00 via iPhone
必须 PG 啊
|
27
gemini767 2016-07-29 13:59:58 +08:00
uber 刚刚弃用了 pg 改 mysql
https://eng.uber.com/mysql-migration/ |
28
xiaowangge 2016-07-29 17:48:54 +08:00
MySQL + Redis + Memcached 。
|
29
wujunze 2016-07-29 18:59:52 +08:00
MySQL 吧 成熟
|
30
WildCat OP @xiaowangge 有 redis 为何还要用 memcached ?
|
31
xiaowangge 2016-07-31 15:07:10 +08:00 1
@WildCat 我是游戏行业,用得腾讯云。
Redis 用来做各种排行榜等功能。 腾讯云的 CMem ( memcached )当成数据库 + 缓存来用。 MySQL 极少用到,充值、竞技场、帮派功能会用到。 |