-- Привет всем. -- Есть csv, проблема в том что

он содержит очень много повторов по столбцам и по строкам.
-- Решил перекинуть это в базу данных, чтобы было проще. Но я не шарю в этом всем.
-- Проблема в том, что скорость вставки примерно 10 записей в секунду.
-- Как увеличить скорость вставки?

CREATE TABLE "HistoryData" (
"Id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
"barId" integer NOT NULL,
"blablaId" integer NOT NULL,
"fooId" integer NOT NULL,
-- и так еще десяток столбцов
CONSTRAINT "fk_HistoryData_bar_1" FOREIGN KEY ("barId") REFERENCES "bar" ("Id"),
CONSTRAINT "fk_HistoryData_blabla_1" FOREIGN KEY ("blablaId") REFERENCES "blabla" ("Id"),
CONSTRAINT "fk_HistoryData_foo _1" FOREIGN KEY ("fooId") REFERENCES "foo" ("Id")
);

CREATE TABLE "blabla" (
"Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"blabla" TEXT
);
CREATE UNIQUE INDEX "blabla_AK"
ON "blabla" (
"blabla"
);
-- и все остальные аналогично.

--- вставляю через python sqlite3 executescript с такими параметрами.
--- connect.execute('PRAGMA foreign_keys = ON;')
--- connect.execute('PRAGMA journal_mode = WAL;')
--- connect.execute('PRAGMA synchronous = normal;')
--- connect.execute('PRAGMA encoding="UTF-8";')
--- connect.execute('PRAGMA temp_store = memory;')
--- connect.execute('PRAGMA mmap_size = 30000000000;')


INSERT INTO foo(Id, foo)
SELECT NULL, {foo}
WHERE NOT EXISTS(SELECT 1 FROM foo WHERE foo = {foo});

INSERT INTO bar(Id, bar)
SELECT NULL, {bar}
WHERE NOT EXISTS(SELECT 1 FROM bar WHERE bar = {bar});

INSERT INTO HistoryData
(
Id,
barId,
fooId
)
SELECT
NULL,
(SELECT Id FROM bar WHERE bar = {bar}),
(SELECT Id FROM foo WHERE foo = {foo})
WHERE NOT EXISTS(
SELECT 1
FROM HistoryData
WHERE
barId = (SELECT Id FROM bar WHERE bar = {bar}) AND
fooId = (SELECT Id FROM foo WHERE foo = {foo})
);

1 ответов

21 просмотр

Вставлять в бд прямо из csv вот так https://www.internet-technologies.ru/articles/import-csv-fayla-v-tablicu-mysql.html

Похожие вопросы

Обсуждают сегодня

Help me to upvote the following datasets so I can reach the next level? Your support would mean a lot 😊 Thank you in advance! https://www.kaggle.com/datasets/agungpambudi/net...
Agung Pambudi
1
Can anyone help me with machine learning? I have some questions
Mohammad reza Mansouri
2
https://www.kaggle.com/code/yousefsaeedian/regime-based-simulations-and-multi-period CAN YOU UPVOTE AND COMMENT FOR MY NOTEBOOK ?🫶🏻🫶🏻🫶🏻🫶🏻
Yousef🌱
1
Привет, подскажите очень частым стал запрос на глубокое знание бд для разработчиков бэка как развивать навыки оптимизации запросов в бд кто может что подсказать? какие книг...
Рома
3
Может кто подсказать какие требования к изображениям для обучения Yolo v8? Как то разрешение, размер выделяемого обьекта в пикселях, оптимальное кол-во изображений. А то я пыт...
Владислав😎
16
читаю Изучаем_SQL_Генерация,_выборка_и_обработка_данных,_3_изд_2021_Алан а вообще какая разница между mysql и postgres , почему некоторые используют первое на новых проектах?
Рома
7
Доброе утро. Подскажите, если если 4 корутины, внутри которых VideoCapture, то будут ли они работать асинхронно? Т.к. нагуглил, что Videocapture в моменте может быть открыт то...
Alexander👨‍💻
19
https://www.kaggle.com/yousefasser/code Can you make me an upvotes? 🙏
Youssef Ashraf
1
Только сейчас дошли руки до Orange pi 5. Это нормально что на нем YOLOv5s выдает 1 кадр раз в 2-3 секунды на CPU? Это без оптимизаций и прочих настроек, просто голый запуск че...
Denis
17
Всем привет! подскажите пожалуйста как можно увеличить качество фото?
Evgeniy
19
Карта сайта