mysql,es,redis三者全称

MySQL用于关系数据存储。
2 008 年支持InnoDB存储引擎,提高事务处理能力。
Elasticsearch适合大规模数据检索。
它于 2 01 2 年开放,支持单个节点上数十亿个文档。
使用Redis作为高性能缓存,并在2 01 0年支持AOF持久化,降低数据丢失的风险。
不要使用 Redis 进行事务处理。

面试官:你真的认为ElasticSearch比MySQL快?

ES 查询比 MySQL 更快,因为它们主要使用倒排索引。
ES使用倒排索引,MySQL使用B+Tree。

全文检索,ES非常高效。
ES倒排索引直接查找文档。
MySQL 需要更多步骤。

对于复杂查询,ES具有明显的优势。
多维查询,ES结果合并很快。
数据量大,ES定位准确。
多表链接,跨ES文档查询简单。

示例:检查 Lily 是否 1 2 岁。
MySQL需要联合索引,ES反向索引可以直接处理这个问题。

你自己检查一下。
如果你的场景不对,ES可能不会很快。

目前常见的大数据存储方式有哪些?

说实话,选择存储解决方案是相当令人困惑的。
我已经思考这个问题好几年了,下面将简要谈谈 MySQL、HBase 和 ES。

MySQL是一个古老的关系数据库。
我入行时,公司核心业务使用Oracle,后来逐渐转向MySQL。
主要针对OLTP,即频繁读写对实时性要求较高的场景。
例如,如果您在购物网站上单击“添加到购物车”,后端应立即更新库存。
在这种情况下应该使用MySQL。
它支持交易,即一次性下订单、添加采购、付款、更改库存。
中间不能有任何差错,否则就被取消。
它还具有二级索引,使数据验证更容易。
使用 SQL 查询也很容易,开发人员喜欢它。
从架构上来说,主从和组复制应用广泛,并且可以扩展和高可用。
但说实话,MySQL的扩展性一般,当数据量过大时,性能直线下降。

对于HBase来说,它是基于HDFS的。
我已经在大数据项目中使用它来处理大量数据。
他的写作能力特别强。
我测试了一下,每天可以写入数十亿条记录,而且速度非常快。
如果数据量是几亿行或者几百万列都没有问题。
它是面向列的NoSQL,与MySQL等基于行的存储不同。
天然的分布式主从架构,但是没有事务,使用时需要密切关注。
例如,如果您验证数据并且登台服务器出现故障,则数据可能会丢失。
也不支持二级索引,查询必须使用RowKey,比较复杂。
适合大表且不需要频繁更改数据的场景,例如日志存储。

ES,全文搜索框架。
我主要用它来搜索,比如电子商务网站上的搜索。
最底层是Lucene,我知道。
虽然ES也能存储数据并快速检索,但我一直以为它不是数据库。
然而,现在ES的功能越来越多,它和数据库的界限也越来越模糊。
它是自然分布式的,具有p2 p架构并且读写速度非常快。
但关键是它不支持交易。
和HBase一样,所以使用的时候要小心。
它采用倒排索引进行全文检索,对于关键词的检索特别方便。
它适用于需要快速全文搜索,但不期望它执行像金融这样严格的交易处理的场景。

简而言之,您的选择取决于您的业务。
MySQL适合OLTP,对实时性要求较高。
HBase适合海量数据,需要多写、少读。
ES适合全文检索,关键字检索速度快。
没有人是万能的,一切都要根据实际情况而定。