Программа делает уйму insert в mysql.
В секунду в несколько десятков таблиц.
На входе в функцию пакет запросов, на каждую таблицу - один запрос с кучей строк.
Сейчас всё идёт последовательно запрос за запросом отправляет.
Но получается слишком медленно - данные скапливаются быстрее чем успеваю их добавлять в БД.
Хочу попробовать распараллелить процесс вставки, т.е. каждый insert в отдельный thread.
Я знаю что в таких случаях используют пул потоков, я пока не очень понимаю как его сделать, но вопрос не в этом.
Сейчас, чтобы просто потестить, как пойдёт, я хочу попробовать что-то типа такого:
std::vector <std::thread> th_vec;
for (int i = 0; i < 50; ++i)
{
th_vec.push_back (std::thread(f));
}
for (int i = 0; i < 50; ++i)
{
th_vec.at (i).join ();
}
Так делать вообще хорошая идея или не особо?