主题
面试速答(先看这里)
**一句话结论:**我看网上有很多各种所谓的奇技淫巧,其实,真正可行的办法就一个,那就是上搜索引擎的, 比如Elasticsearch。
60秒标准回答:
在分库分表中,尤其是针对海量商品做了水平分表后,商品的数据会分散到很多张不同的分表中,那么,如果前端用户想要查询某个商品怎么办呢?
我看网上有很多各种所谓的奇技淫巧,其实,真正可行的办法就一个,那就是上搜索引擎的, 比如Elasticsearch
且不说分库分表,就是数据量超过几千万的这种模糊查询的话,数据库你用 like 去查询也都扛不住,因为 %hollis% 没办法走索引,性能也很差
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
回答主线:
- **要点1:**在分库分表中,尤其是针对海量商品做了水平分表后,商品的数据会分散到很多张不同的分表中,那么,如果前端用户想要查询某个商品怎么办呢?
- **要点2:**且不说分库分表,就是数据量超过几千万的这种模糊查询的话,数据库你用 like 去查询也都扛不住,因为 %hollis% 没办法走索引,性能也很差。
- **要点3:**所以,这个地方,该上搜索引擎还是要上的;
- **要点4:**方案就是把数据同步到 ES 中一份,然后基于 ES 针对商品名称构建倒排索引,这样在分词后就可以做全文索引提升查询效率了。
**记忆锚点:**Elasticsearch → 商品名称构建倒排索引 → 那就是上搜索引 → hollis → 没办法走索引 → 该上搜索引
关键取舍:
- 且不说分库分表,就是数据量超过几千万的这种模糊查询的话,数据库你用 like 去查询也都扛不住,因为 %hollis% 没办法走索引,性能也很差。
加分表达:
- 在分库分表中,尤其是针对海量商品做了水平分表后,商品的数据会分散到很多张不同的分表中,那么,如果前端用户想要查询某个商品怎么办呢?
追问准备:
- 围绕「Elasticsearch」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「商品名称构建倒排索引」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「那就是上搜索引」:底层原理是什么?使用时有哪些边界和常见坑?
- 如果线上出现异常,你会如何定位、验证并规避?
典型回答
在分库分表中,尤其是针对海量商品做了水平分表后,商品的数据会分散到很多张不同的分表中,那么,如果前端用户想要查询某个商品怎么办呢?
我看网上有很多各种所谓的奇技淫巧,其实,真正可行的办法就一个,那就是上搜索引擎的, 比如Elasticsearch。
且不说分库分表,就是数据量超过几千万的这种模糊查询的话,数据库你用 like 去查询也都扛不住,因为%hollis%没办法走索引,性能也很差。
所以,这个地方,该上搜索引擎还是要上的;
方案就是把数据同步到 ES 中一份,然后基于 ES 针对商品名称构建倒排索引,这样在分词后就可以做全文索引提升查询效率了。