Как перенести CSV-файл в Sqlite3 (или MySQL)? – Python

Я использую Python для сохранения данных подряд за строкой … но это очень медленно!

CSV содержит 70 миллионов строк , и с моим сценарием я могу просто сохранить 1 тысячу секунд .


Вот как выглядит мой сценарий

reader = csv.reader(open('test_results.csv', 'r')) for row in reader: TestResult(type=row[0], name=row[1], result=row[2]).save() 

Я считаю, что для тестирования мне, возможно, придется подумать о MySQL или PostgreSQL.

Любая идея или советы? Это первый раз, когда я сталкиваюсь с такими огромными объемами данных. 🙂

2 Solutions collect form web for “Как перенести CSV-файл в Sqlite3 (или MySQL)? – Python”

Для импорта MySQL:

 mysqlimport [options] db_name textfile1 [textfile2 ...] 

Для импорта SQLite3:

ref Как импортировать файл .sql или .csv в SQLite?

Я не знаю, будет ли это иметь большую разницу, но поскольку вы имеете дело с ORM Django, я могу предложить следующее:

  1. Убедитесь, что DEBUG False в вашем файле настроек Django, поскольку в противном случае вы сохраняете каждый отдельный запрос в памяти.
  2. Поместите свою логику в основную функцию и оберните ее в декоратор django.db.transactions.commit_on_success. Это предотвратит необходимость каждой строки в ее собственной транзакции, что существенно ускорит процесс.
  3. Если вы знаете, что все строки в файле не существуют в базе данных, добавьте force_insert = True в ваш вызов метода save (). Это позволит вдвое сократить количество вызовов в sqlite.

Эти предложения, вероятно, сделают еще большую разницу, если вы обнаружите, что используете СУБД клиент-сервер.

  • Как загрузить существующий файл db в память в Python sqlite3?
  • jQuery ui sortable - сохранить в базу данных с помощью Python / Flask / SQLite
  • Список записей в базе данных SQL Lite с Genie
  • Как проверить, существует ли таблица?
  • Использование Python быстро вставляет много столбцов в Sqlite \ Mysql
  • Подключиться к базе данных в фляге, какой подход лучше?
  • Серийный тип SQLite3 не увеличивался
  • Как расширить SQLite с помощью функций Python в Django?
  •  
    Interesting Posts for Van-Lav

    Python: определение списка определенного типа объекта

    Проблемы с заменой слов в строке с использованием словаря и функции replace ()

    Как настроить обмен сообщениями и промежуточное ПО сеанса в Django RequestFactory во время модульного тестирования

    Эффективно проверьте, присутствует ли значение в любом из заданных диапазонов

    Преобразуйте букву колонки Excel или таблицы в ее число в Pythonic

    Использование os.walk () для рекурсивного прохождения каталогов в Python

    Python не может получить полное имя файла

    Рекурсия для определения глубины выражения

    Сохранение графиков Matplotlib для изображения в полноэкранном режиме

    Использование других ключей для функции waitKey () opencv

    AttributeError: объект 'module' не имеет атрибутных 'карт

    Изменить запрос набора модели в inlineformset не-родительской модели

    Неправильная дата, связанная с ранним утром, соскоблила с веб-сайта погоды (Python) + только данные за январь?

    Объединенная визуализация атмосферных данных

    Кросс-платформенный графический интерфейс Python, подходящий для функциональности панели задач (Win) и menubar (mac)?

    Python - лучший язык программирования в мире.