У меня консольное приложение на c++ которое берет данные из файла и загоняет их в MySQL server InnoDB запросом:
"insert into xyz values ('123456789012345',1234,56,78,90,12,34,5678,123456,7,123456,1,12345)".
Этот запрос крутится внутри while.
Одна запись - это 15 полей на 65-70 байт.
Подключаюсь через c++ connector v.1.1.0 x64, mysql server 8.
Когда база была на SSD писал примерно по 1000 записей/сек. т.е. около 68 кБайт/секунду.
Когда база на HDD то вообще по 3-10 записей/сек. т.е. около 210 байт/секунду.
Такие же скорости сохраняются даже если не из файла данные читать, а просто так данными БД забивать.
Вопрос: из-за чего такая фантастически низкая скорость и как это изменить?
Вот тут есть хорошая статья, которая говорит что надо посылать несколько записей в 1 запросе или использовать импорт напрямую в БД из спец.отформатированного файла.
https://medium.com/@benmorel/high-speed-inserts-wi...
Но меня больше волнует почему вообще такая низкая скорость? Это ведь всё на localhost происходит. Мне кажется дело то ли в коннекторе старой версии, то ли ещё в чём то программном.