Самый быстрый способ загрузить дамп базы данных из хранилища в Python - PullRequest
1 голос
/ 27 мая 2020

У меня есть удаленная база данных, откуда мне нужно несколько раз извлечь около 3 миллионов записей (я экспериментирую с данными). Поскольку база данных удаленная, повторные запросы к ней занимают много времени. Итак, я подумываю вытащить данные один раз и сохранить их локально в каком-то формате. Место для локального хранилища - не большая проблема; Я могу управлять несколькими гигабайтами. Каков был бы самый быстрый способ хранить эти данные локально, чтобы поиск происходил быстро? Я предполагаю, что оптимизация возможна на двух уровнях; структура данных и способ хранения. Что касается формата данных, я использовал tuples. Я предполагаю, что кадр данных pandas будет быстрее, чем tuples. Есть ли еще более быстрый формат?

Что касается техники хранения, я использовал pickle, но, вероятно, это не лучший способ. Я читал о HDF5, cPickle, но я не уверен, какой из них лучше всего подойдет для дампа базы данных и имеет ли значение основная структура данных. Есть ли другие альтернативы?

1 Ответ

1 голос
/ 27 мая 2020

Я думаю, что вы получите самые быстрые результаты, используя sqlite3, на мой взгляд, самый эффективный. Это действительно хорошо для работы с большими наборами данных (в данном случае с вашими 3 миллионами записей).

Возможно, вы читали об этом и знаете, что он не может работать в одиночку с удаленными базами данных (поскольку он сам не имеет сетевых функций), но если вы сделаете базу данных доступной на общем доступном по сети диске , он будет работать нормально. Вы также можете выполнить sh это с помощью Navicat , подключившись к удаленной базе данных sqlite через S SH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...