Мы делаем небольшой тест MySQL, где хотим видеть, как он работает для наших данных.
Часть этого теста заключается в том, чтобы увидеть, как он работает, когда несколько параллельных потоков забивают сервер с различными запросами.
Документация по MySQL (5.0) не совсем понятна для многопоточных клиентов. Я должен указать, что я связываюсь с библиотекой, защищенной потоком (libmysqlclient_r.so
)
Я использую подготовленные инструкции и читаю (SELECT) и записываю (UPDATE, INSERT, DELETE).
- Должен ли я открыть одно соединение на поток? И если да: как это сделать... кажется, что
mysql_real_connect()
возвращает исходный дескриптор БД, который я получил, когда вызывалmysql_init()
) - Если нет: как я могу убедиться, что результаты и методы, такие как
mysql_affected_rows
, возвращают правильное значение вместо того, чтобы сталкиваться с другими потоковыми вызовами (mutex/locks могут работать, но он чувствует себя не так).