《全栈工程师修炼指南》学习笔记 22

2023-02-27  本文已影响0人  VioletJack

搜索引擎

最简单的数据查找方式,但如果面对大量数据这种行为需要全表扫描,是非常低效的。

select * from ARTICLES where CONTENT like '%存储%';

倒排索引

Elasticsearch

Elasticsearch 将关键字使用哈希算法分散到多个不同的被称为 Shard 的虚拟节点,并且把他们部署到不同的机器节点上。且每个 Shard 具备指定数量的冗余副本,这些副本被要求放置到不同的物理机器节点上。保证每台机器都制管理稳定且可控的数据量,并且保证了搜索服务数据的可用性。

地理信息系统

方案一:根据商家 ID 记录它所在位置的经纬度。当用户选中某块地图后,根地图边界的经纬度来查询地图范围内的商户。效率很慢。
方案二:给商家的经度和维度分别索引。当用户选中某块地图后,先按照经查找商家。再将这些商家按照维度排序,通过二分法找到目标商户。优化了查找算法,快了不少。
方案三:使用 GeoHash,即将经纬度的数值交叉混合。如此可以根据地图精度截取 Hash 前 n 位的字符串进行匹配。字符串越长精度越高。

SQL 和 NoSQL 如何选择

如何选择数据库,可以按照以下两个方面考虑。

我们在选择技术的时候,很可能要针对每一类数据选择一组技术,而不是笼统的选择一项技术。

选择数据库的思路

上一篇 下一篇

猜你喜欢

热点阅读