0

如果我尝试使用 Logstash 摄取该表的增量数据,我想知道 Elasticsearch 是否对我的 Oracle 表执行全表扫描

4

1 回答 1

1

Elasticsearch 不与您的数据库交互,它是在您的数据库上运行查询的 Logstash。Logstash 是否扫描整个表取决于查询本身和扫描的表索引。从 Logstash 运行的大多数查询看起来与此类似:

SELECT * FROM TABLE WHERE FIELD_FOR_DELTA > :sql_last_value;

如果FIELD_FOR_DELTA没有索引,则 Oracle 将搜索所有记录以找到满足条件的条目。但是当FIELD_FOR_DELTA有索引时,Oracle 要么搜索表的一小部分,要么只检查具有最高值的记录,如果值相等或更小,则完成查询。如果您的表中没有此字段的索引,那么您应该考虑它,因为可能会提高查询性能并降低 Logstash 对数据库的影响。

于 2019-03-15T20:28:08.147 回答