HeatWave User Guide  /  ...  /  Bulk Ingest Data to MySQL Server Limitations

11.2.1.2 Bulk Ingest Data to MySQL Server Limitations

  • MySQL HeatWave on OCI does not support LOAD DATA with ALGORITHM=BULK.

  • MySQL HeatWave on AWS does support LOAD DATA with ALGORITHM=BULK, but does not support the INFILE and URL clauses.

  • For versions earlier than MySQL 9.4.0, tables must have a primary key, and the primary key must not have a prefix index. For MySQL 9.4.0 and later, primary keys are not required.

  • LOAD DATA with ALGORITHM=BULK has the following limitations:

    • It locks the target table exclusively and does not allow other operations on the table.

    • It does not support automatic rounding or truncation of the input data. It fails if the input data requires rounding or truncation in order to be loaded.

    • It does not support temporary tables.

    • It is atomic but not transactional. It commits any transaction that is already running. On failure the LOAD DATA statement is completely rolled back.

    • It cannot execute when the target table is explicitly locked by a LOCK TABLES statement.

  • The target table for LOAD DATA with ALGORITHM=BULK has the following limitations:

    • It must be empty. The state of the table should be as though it has been freshly created. If the table has instantly added/dropped column, call TRUNCATE before calling LOAD DATA with ALGORITHM=BULK.

    • It must not be partitioned.

    • It must not contain secondary indexes. As of MySQL 9.2.0, LOAD DATA with ALGORITHM=BULK does support secondary indexes.

    • It must be in a file_per_tablespace, and must not be in a shared tablespace.

    • It must have the default row format, ROW_FORMAT=DYNAMIC. Use ALTER TABLE to make any changes to the table after LOAD DATA with ALGORITHM=BULK.

    • It must not contain virtual or stored generated columns.

    • It must not contain foreign keys.

    • It must not contain CHECK constraints.

    • It must not contain triggers.

    • It is not replicated to other nodes.

    • It must not use a secondary engine. Set the secondary engine after LOAD DATA with ALGORITHM=BULK. See: Section 4.2.6.2, “Define the Secondary Engine”.