ElasticSearch Mongo MySQL文档存储及检索对比

ElasticSearch Mongo MySQL文档存储及检索对比。

测试环境:

  1. 硬件配置:2核2G内存
  2. 部署方式:Docker
  3. CentOS 8.4
  4. PHP 7.4.23
  5. MySQL8使用的是Ngram全文检索解析器
  6. 数据量:2.6万个文档,大小总计430M。

由于数据量、环境及所使用语言的限制,结果仅供参考。

对比项目 Mongo MySQL ElasticSearch
版本 4.4.6 8.0.26 7.14.1
配置复杂度(越低越好) 6 2 4
PHP扩展 需要 不需要 不需要
composer 支持 支持 支持
语法友好度(越高越好) 4 10(Ngram解析器,原生SQL) 8
默认单字/词查询
分页查询 支持 支持 支持
复杂查询 支持度低 支持度不高 支持
结果相似度打分 不支持 支持 支持
局部update 支持 支持(不存在该问题) 不支持
数据写入耗时 335秒 前期较快,1万条后明显卡顿,未实际完成 248秒

综合以上,ElasticSearch胜出,MySQL甚至不能在一小时内写入几百兆的文本数据也是出乎意料的。

最终方案:关系型数据使用MySQL,需要全文检索的数据同步到ElasticSearch中。

Leave a Comment

豫ICP备19001387号-1