
最近有个小项目,短期未来可能涉及全文搜索。另外用户资料等一些信息也想用 JSON 字段存储。
MySQL/PostgeSQL 都添加了不错的 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 @WildCat 我是游戏行业,用得腾讯云。 Redis 用来做各种排行榜等功能。 腾讯云的 CMem ( memcached )当成数据库 + 缓存来用。 MySQL 极少用到,充值、竞技场、帮派功能会用到。 |