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