У меня есть таблицы MySQL tableName
и table2
с определенными на них индексами.
Я создал в своем приложении Java связанную таблицу tableName
с этим запросом:
CREATE LINKED TABLE IF NOT EXISTS tableName('', 'jdbc:mysql://hostName:port/dbName', 'user', 'pass', 'tableName');
Тот же запрос для table2
.
Затем я создал tableSelect
в базе данных H2 с запросом:
CREATE TABLE tableSelect AS SELECT * FROM tableName WHERE Sex = 'F'
Теперь мое Java-приложение создает индекс, если он не существует в table2
, с помощью этого запроса:
CREATE INDEX IF NOT EXISTS DES ON table2(DES);
, и это вызывает ошибку, подобную этой, когда я нажимаю кнопку для повторного запускаquery: org.h2.jdbc.JdbcSQLException: Feature not supported: "LINK"; SQL statement:
Кроме того, если индикаторы определены, я выполняю JOIN
для уже определенных индексов, но это слишком медленно. Запрос JOIN включает таблицу в H2 и таблицу в MySQL, то есть связанную таблицу, и она выглядит так:
CREATE TABLE tableNew AS SELECT l.*, CONTR AS Activity FROM t AS ableSelect JOIN table2 AS agg ON l.Contr_Type = agg.DES;
Как я могу оптимизировать этот JOIN?