MySQL用得好好的,为什么要转ES?

2 02 3 年,我朋友的公司从MySQL切换到Elasticsearch(ES)。
主要原因有: 1 、高吞吐阻力:命令查询的调用量较大,MySQL单表性能有限。
ES集群日均查询量5 亿次,文档数据量超1 0亿,易于管理。
2 、复杂查询:ES提供了丰富的DSL查询语法,支持多字段组合查询、地理空间查询等,而MySQL则较弱。
3 、高可用性:采用双集群架构,保证故障切换时的无缝切换。
4 .数据同步:同步管理MySQL binlog并与ES同步,或者通过ESAPI写入数据以实现最终一致性。
5 、避免陷阱:实时事务、深度页面问题、排序优化等
总结:MySQL适合业务应用,ES在查询、搜索、聚合等方面优势显着,架构的选择要根据业务情况权衡。
没有“最好的解决方案”,只有“最正确的解决方案”。

MySQL和ES的索引对比

MyISAM和B+Tree,InnoDB也使用B+Tree,但是InnoDB是数据索引器,MyISAM索引和数据是分离的。
InnoDB的主键是聚集索引,辅助索引指的是主键。
ES 使用倒排索引、术语索引和术语词典来加快搜索速度。