Это бенчмарк 5 библиотек:
- PostgresSQL
- SQLite
- ВuckDB
- Pandas
- SQLAlchemy
Для запуска нужно установить следующие пакеты:
- duckdb
- pandas
- psycopg2
- sqlalchemy
Есть файл config.json, который отвечает за параметры запуска:
- "databases" -> какие БД нужно тестировать
- "number_of_starts" -> количество запусков
- "path_to_file_sqlite" -> абсолютный путь к sqlite.db файлу, если такой файл есть
- "path_to_file_csv" -> путь к csv файлу с БД
- "create_db_postgres" -> нужно ли создавать заново postgres БД
- "create_db_sqlite" -> нужно ли создавать заново sqlite БД
- "postgress_conf" -> параметры для подключения к postgress В процессе тестирования создастся файл results.txt с временем выполнения каждого запроса
- Самая медленная БД из тестируемых, особенно мучительно её заполнять данными.
- Проигрывает абсолютно всем, печаль.
- Подключение через URL строку -> "сомнительно, ну ОКЭЙ."
- Классный клиент pgAdmin4
- Есть классная штука у метода to_sql() 'multi' 'chunks', которая позволяет настроить sql запросы и количество считывание строк. Классно экономит RAM)
- Серверная, старенькая бд, вот и причина медлительности.
- Вот это класс, она уже есть в питоне!
- Просто обожаю её за простоту и минималистичность, а также удобство работы с ней.
- Максимально user-friendly БД. sqlite3 мал да удал, но также медленная БД.
- Быстрее postgres'а, но postgres 1, 2 queries обработал быстрее sqlite, но проиграл в 3 и 4.
- Все действия происходят на стороне клиента, а не на сервере. Просто во! Что не понравилось:
- Боже, тут нету extract
- А также она не смогла разрешить проблему со столбцами airport_fee и Airport_fee, кидая ошибку :(
- Чтобы заполнить бд большим дата сетом потребовалось около 2ч
- Прикольная и простая библеотека, все понравилось.
- По работе очень похожа на DuckDB
- На 3 месте по скорости работы
- Не знаю, что еще сказать про нее.
- Тут есть ORM, OMG! Можно забыть про SQL)
"Это было не просто смело, это было ___ как смело"
- 1 по скорости выполнения запросов, круто!
Плюсы:
- Через данную библеотеку работал с csv файлами, чтобы заполнить postgres, sqlite
- Движки, которые поддерживает pandas
- Классный метод to_sql, который умеет считывать чанками Что не понравилось:
- А тут есть SQL expressions? Хочется просто так .extract("...") "Я скорость" - Numpy, который используется в Pandas, эффективно реализующий операции с массивами
Сначала долго не мог понять в чем прикол, когда делал 10+ запросов на большом дата сете и ср. скорость выполнения запросов была 5с
"Неужели это демон скорости?" - Подумал я, но все оказалось в разы интересней...
Потом начал делать по 1 запросу при каждом запуске модуля с DuckDB и осознал
"Она умеет кешировать?!" - Наверное да.
Скорость работы сильно улучшается при повторяющихся запросах, круто! (Примерно в 5 раз)
P.S. Это относится и к Pandas.
Мне показалось, что по DuckDB всех меньше гайдов, по сравнению с другими библеотеками.

