es为什么查询效率高的原因

NameMysqlES
索引类型B+树倒排索引
效率降低树的高度,减少IO次数(磁盘查询)将Term Index存入内存,减少IO次数,查询效率更高
使用场景适用于存储结构化数据,支持join恋表查询适用于存储非结构化数据,适合全文检索

1、倒排索引:

倒排索引的结构如下:

       “关键词1”:“文档1”的ID,“文档2”的ID,…………。

       “关键词2”:带有此关键词的文档ID列表。

通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。可以看到 lucene 为倒排索引(Term Dictionary)部分又增加一层Term Index结构,用于快速定位,而这Term Index是缓存在内存中的,但mysql的B+tree不在内存中,所以整体来看ES速度更快,但同时也更消耗资源(内存、磁盘)。

2、与其他数据库的比较