Скрипт для тестирования производительности записи/чтения бинарных файлов в базу данных postgres с использованием pg_largeobject.
Как установить: pip install -r requirements.txt
Как использовать:
./test_pg_lo.py --help
- мануал
Запуск теста:
./test_pg_lo.py --dbname='имя БД' --user='пользователь' --host='сервер ДБ' --password='пароль' --port='порт'
Скрипт создает в базе вспомогательную таблицу test_pg_lo,записывает все файлы из папки ./input в таблицу pg_largeobject и добавляет записи (имя файла, размер, скорость записи в базу, скорочть чтения из базы) в таблицу test_pg_lo, предварительно ее создав. Производит чтение из базы lo (large_object) объектов и запись на диск в папку ./output. Выводит метрики процесса. По завершении очищает таблицу pg_largeobject и удаляет вспомогательную таблицу test_pg_lo.
Пример вывода скрипта:
./test_pg_lo.py
Самая медленная запись в базу: файл - ТЦ 71.jpg, размер - 5056 kB, время - 86 ms
Самая быстрая запись в базу: файл - ТЦ 32.jpg, размер - 54 kB, время - 2 ms
Среднее время записи в базу: 7 ms
Самое медленное чтение из базы: файл - ТЦ 71.jpg, размер - 5056 kB, время - 67 ms
Самое быстрое чтение из базы: файл - ТЦ 39.jpg, размер - 72 kB, время - 1 ms
Среднее время чтения из базы: 4 ms
Всего записано в базу: 93796 kB за 2863 ms
Чтение из базы и запись на диск всей папки: 93796 kB за 1961 ms