Spec-Zone.ru › DuckDB

Заявления INSERT

INSERT заявления являются стандартным способом загрузки данных в реляционную базу данных. При использовании INSERT заявлений значения предоставляются по строкам. Хотя это просто, существует значительная накладная стоимость, связанная с анализом и обработкой отдельных INSERT заявлений. Это делает множество отдельных вставок по строкам очень неэффективными для массовой загрузки.

Лучшая практика Как правило, следует избегать использования множества отдельных вставок по строкам INSERT заявлений при вставке более нескольких строк (т.е. избегайте использования INSERT заявлений в качестве части цикла). При массовой загрузке данных старайтесь максимально увеличить количество данных, вставляемых за одно заявление.

Если вам необходимо использовать INSERT заявления для загрузки данных в цикле, избегайте выполнения заявлений в режиме автоматического подтверждения. После каждого подтверждения база данных должна синхронизировать изменения, внесенные на диск, чтобы убедиться, что данные не потеряны. В режиме автоматического подтверждения каждое отдельное заявление будет заключено в отдельную транзакцию, что означает, что fsync будет вызываться для каждого заявления. Как правило, это не нужно при массовой загрузке и значительно замедлит вашу программу.

Подсказка Если вам абсолютно необходимо использовать INSERT заявления в цикле для загрузки данных, заключите их в вызовы BEGIN TRANSACTION и COMMIT.

Синтаксис

Пример использования INSERT INTO для загрузки данных в таблицу:

CREATE TABLE people (id INTEGER, name VARCHAR);
INSERT INTO people VALUES (1, 'Mark'), (2, 'Hannes');

Более подробное описание вместе с диаграммой синтаксиса можно найти на странице страница по INSERT заявлению.

© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/data/insert.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API