我试图了解如何在Elasticsearch上优化索引。让我澄清我的需求;
indexA
和indexB
(两个索引可以看到大致相同的大小)所以我的问题是,如何使用这6台机器优化写入操作?
indexA
和3台机器indexB
?要么
indexA
和indexB
?和
先感谢您
这取决于情况,但是让我根据您的问题陈述得出一个方向,该结论导致了以下假设:
为了获得更好的索引性能,第一件事是您可能希望为索引使用单个分片(除非您正在使用路由)。但是由于您有6个具有单个分片的服务器,这会浪费资源,因此您可以将3个分片分配给indexA和indexB。这是针对当前方案,但建议使用约10个分片(以供将来扩展,并取决于您的数据大小)
关闭副本(如果可能,因为索引请求会等待副本响应然后返回)。尽管在生产环境中,强烈建议至少有一个副本以实现高可用性。
将刷新率设置为“ -1”或至少设置为更大的数字,例如“ 30m”。(如果这样做,您将丢失NRT搜索,但是正如您所提到的,您担心索引编制)
如果有的话,转暖圈器。
避免在字段映射中使用“ doc_values”。(尽管这样做有利于减少搜索期间的内存占用量,但它会在索引期间准备字段值,因此会增加索引时间)
如果可能/不需要,请在映射中禁用“规范”
最后阅读一下。
温馨提示:上述某些方法会影响您的搜索效果。
本文向大家介绍MySQL如何优化索引,包括了MySQL如何优化索引的使用技巧和注意事项,需要的朋友参考一下 1. MySQL如何使用索引 索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后遍历整个表以找到相关的行。表越大,花费越多。如果表中有相关列的索引,MySQL可以快速确定要在数据文件中间查找的位置,而不必查看所有数据。这比顺序读取每一行要快得多。 大多数MyS
问题内容: 使用Elasticsearch渗滤器索引时,有没有办法改善内存性能? 我为渗滤器创建了一个单独的索引。我大约有1000000个用户创建了保存的搜索(用于电子邮件警报)。创建此过滤器索引后,我的堆使用率飙升至100%,服务器对任何查询均无响应。我的资源有限,无法简单地在此问题上投入更多的RAM。唯一的解决方案是删除包含我已保存的搜索的索引。 根据我的阅读,渗滤器索引永久地驻留在内存中。这
什么是索引? 数据库的索引与书籍的索引类似,有了索引就不需要翻转整本书。数据库的索引跟这个原理一样,首先在索引中找,在索引中找到条目以后,就可以直接跳转到目标文档的位置,从而使查询速度提高几个数据量级。 不使用索引的查询称为全表扫描(这个术语来源于关系型数据库),也就是说,服务器必须查找完一整本书才能找到查询结果。这个过程跟我们在一本没有索引(目录)的书中查找信息很像:从第一页开始一直读完整本书。
问题内容: 我有一个大约2亿个文档的ElasticSearch索引,总索引大小为90Gb。 我更改了映射,所以我希望ElasticSearch重新索引所有文档。 我编写了一个脚本,该脚本创建一个新索引(具有新映射),然后遍历旧索引中的所有文档,然后将其放入新索引中。 它似乎可以工作,但是问题是它的运行速度非常慢。它从两天前以300个文档/分钟开始,现在的速度是150个文档/分钟。 该脚本在elas
本文向大家介绍mysql性能优化之索引优化,包括了mysql性能优化之索引优化的使用技巧和注意事项,需要的朋友参考一下 作为免费又高效的数据库,mysql基本是首选。良好的安全连接,自带查询解析、sql语句优化,使用读写锁(细化到行)、事物隔离和多版本并发控制提高并发,完备的事务日志记录,强大的存储引擎提供高效查询(表记录可达百万级),如果是InnoDB,还可在崩溃后进行完整的恢复,优点非常多
以下优化算法基于个人当前理解,能力有限,如有偏颇还请斧正。 简单查询索引优化 等值查询优化 单列等值查询,为该等值列加索引 多列等值查询,每列求取散粒度,按从大到小排序取前N列添加到索引(N可配置) SELECT * FROM tbl WHERE a = 123; SELECT * FROM tbl WHERE a = 123 AND b = 456; SELECT * FROM tbl WHER