Skip to content

[TASK] Bulk insert functional test data sets - #744

Open
wouter90 wants to merge 1 commit into
TYPO3:mainfrom
wouter90:bulk-functional-dataset-imports
Open

[TASK] Bulk insert functional test data sets#744
wouter90 wants to merge 1 commit into
TYPO3:mainfrom
wouter90:bulk-functional-dataset-imports

Conversation

@wouter90

Copy link
Copy Markdown
Contributor

Functional CSV data sets currently execute one INSERT statement for every row. Large fixtures therefore spend most of their setup time on database round trips.

Resolve column types once per table, keep the required JSON conversion, and pass all rows to Connection::bulkInsert(). The connection automatically splits statements at the platform parameter limit, while empty data sets and sequence resets retain their existing behavior.

For the 743-row RootlineUtility fixture, this reduces runtime by 28% on PostgreSQL, 48% on SQLite, and 80% on MariaDB.

Functional CSV data sets currently execute one INSERT statement for every row. Large fixtures therefore spend most of their setup time on database round trips.

Resolve column types once per table, keep the required JSON conversion, and pass all rows to Connection::bulkInsert(). The connection automatically splits statements at the platform parameter limit, while empty data sets and sequence resets retain their existing behavior.

For the 743-row RootlineUtility fixture, this reduces runtime by 28% on PostgreSQL, 48% on SQLite, and 80% on MariaDB.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant