Elasticsearch не взаимодействует с вашей базой данных, это Logstash, который выполняет запросы к вашей базе данных.Сканирует ли Logstash всю таблицу, зависит от самого запроса и отсканированных индексов таблицы.Большинство запросов, запускаемых из Logstash, выглядят примерно так:
SELECT * FROM TABLE WHERE FIELD_FOR_DELTA > :sql_last_value;
Если FIELD_FOR_DELTA
не имеет индекса, Oracle выполнит поиск по всем записям, чтобы найти записи, удовлетворяющие условию.Но когда у FIELD_FOR_DELTA
есть индекс, Oracle будет либо искать в небольшой части таблицы, либо проверять запись с самым высоким значением и завершать запрос, если значение было равно или меньше.Если у вас нет индекса для этого поля в вашей таблице, вам следует рассмотреть его из-за потенциально повышенной производительности запросов и снижения влияния БД в Logstash.