67к только в memtx записалось. Это норм? 3 поля: unsigned, string, string. Уникальный hash индекс по второму полю. Дропнул индекс - всё так же медленно. Полагаю дело в питонячем драйвере?
Он синхронный, ждет ответа на каждый запрос. Можно исхитриться, сформировать сначала пачку запросов, вызывая напрямую класс Request, потом отправить эту пачку в connection.socket, потом из сокета вычитать байты и передать их функциям, которые парсят респонз. Еще вариант написать хранимку, которая вставляет пачку строк в одной транзакции, и вызывать ее, передавая по 1000 строк за раз. Можно открыть несколько соединений и делать это параллельно в несколько потоков. Еще можно взять асинхронный драйвер asynctnt для python 3.6+, там скорость будет получше, там сериализация на Cython написана.
напишите хранимую процедуру, которая принимает несколько тысяч записей за раз, и передавайте из пайтона сразу большой пакет
Го делает по 250к, но там в бенчмарке нет строк
В бенчмарке питон драйверов кажется рпс поболее будет
Обсуждают сегодня