
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
查询功能是程序员在开发软件和数据库的时候都需要添加的一项功能,而今天我们就通过案例分析来了解一下,数据库查询功能优化都有哪些方法。
文件系统缓存预加载
如果重新启动运行Elasticsearch的计算机,则文件系统缓存将为空,因此在操作系统将索引的热区域加载到内存之前需要一些时间,以便搜索操作很快。根据使用index.store.preload设置的文件扩展名,可以显式地告诉操作系统应该将哪些文件加载到内存中。预加载设置。
注意:如果文件系统缓存不够大,无法保存所有数据,那么在太多索引或太多文件上急切地将数据加载到文件系统缓存中会使搜索速度变慢。谨慎使用。
将标识符映射为keyword
如果文档中有数字标识符,则很容易将它们映射为数字,这与它们的json类型一致.但是,Elasticsearch索引数字的方式会优化范围查询,而keyword字段在术语查询时更好。由于标识符从未在范围查询中使用,因此应将它们映射为关键字。
使用索引排序来加速连接
索引排序可以很有用,以便以稍微慢点的索引为代价使连接更快。在索引分类文档中阅读更多信息。
使用preference来优化缓存利用率
有多个缓存可以帮助搜索性能,例如文件系统缓存、请求缓存或查询缓存。然而,所有这些缓存都是在节点级别上维护的,这意味着,如果您在一行中运行相同的请求两次,拥有一个或多个副本,并使用默认的路由算法roundrobin,那么这两个请求将进入不同的碎片副本,从而节点级缓存发挥不起作用。
由于搜索应用程序的用户通常会一个接一个地运行类似的请求,例如为了分析较窄索引子集,使用标识当前用户或会话的偏好值可以帮助优化高速缓存的使用。
副本可能有助于提高吞吐量,但并非总是如此
除了提高弹性外,副本还可以帮助提高吞吐量。例如,如果您有单个分片索引和三个节点,则需要将副本数设置为2,以便总共拥有3个分片副本,以便使用所有节点。
现在假设你有一个2分片索引和两个节点。在一种情况下,副本的数量是0,这意味着每个节点拥有一个分片。在二种情况下,副本的数量是1,这意味着每个节点具有两个分片。哪种设置在搜索性能方面表现佳?通常,每个节点总共具有较少分片的设置将表现得更好。原因是它为每个分片提供了更大的可用文件系统缓存份额,而文件系统缓存可能是Elasticsearch的一性能因子。同时,请注意,在单节点发生故障的情况下,没有副本的设置会出现故障,因此在吞吐量和可用性之间需要进行权衡。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。