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