Влияет ли Java RETURN_GENERATED_KEYS на производительность?

Я использую Statement.RETURN_GENERATED_KEYS для решения следующей проблемы: после вставки строки в базу данных и последующего получения ее идентификатора, выполнив новый выбор, иногда строка не обнаруживается - почему-то информация не попала в БД.

Я предполагаю, что этот флаг гарантирует, что данные передаются в базу данных перед выполнением следующей строки кода. Если так:

  1. Statement.RETURN_GENERATED_KEYS влияет на производительность? Разрешить выполнение без этого флага будет выполняться быстрее?
  2. как флаг влияет на обработку оператора SQL?

[Edit] - Я использую MySQL Server в качестве БД, c3p0 для реализации пула соединений и mysql-connector-java для драйвера. Чтобы получить представление о контексте, о котором я говорю, ниже приведен фрагмент кода:

    StringBuilder insertedId = new StringBuilder("");
    DAOSession session = DAOSession.getInstance();
    Connection conn = session.aquireTransaction();
    Statement stm = null;
    try {
        stm = conn.createStatement();
        stm.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        if (stm != null) {
            // Find and return the generated key
            try (ResultSet generatedKeys = stm.getGeneratedKeys()) {
                if (generatedKeys.next()) {
                    insertedId.setLength(0);
                    insertedId.append(generatedKeys.getString(1));
                } else {
                    // Log this scenario
                }
            }

            stm.close();
        }

        conn.close();
    }

🤔 А знаете ли вы, что...
Java имеет множество библиотек и фреймворков, упрощающих разработку.


111