문제

C 또는 C++ 애플리케이션 내에서 사용할 수 있는 Mysql용 비동기 커넥터가 있습니까?콘센트에 꽂을 수 있는 걸 찾고 있어요 반응기 패턴 쓰여진 부스트.아시오.

[편집:] 스레드에서 동기 커넥터를 실행하는 것은 옵션이 아닙니다.

도움이 되었습니까?

해결책

http://forums.mysql.com/read.php?45,183339,183339즐기다

비동기 mysql 쿼리를 수행하는 방법을 보여주는 원본 기사에 대한 링크가 업데이트되었습니다.

http://jan.kneschke.de/projects/mysql/async-mysql-queries-with-c-api/

다른 팁

매우 다른 기술에서도 비슷한 문제가 발생했습니다.Twisted Python(리액터 기반 IO) 및 sqlAlchemy(??).솔루션을 검색하던 중 단순히 sqlAlchemy에 대한 별도의 스레드를 생성한 다음 요청에 응답하는 sAsync 프로젝트를 발견했습니다.

ASIO가 낮은 수준의 OS 기능(예: aio_read() 또는 ReadFileEx() 등)과 OS 수준 리액터(또는 Windows의 경우 proactor)를 기반으로 한다는 점을 고려하면 ' 비슷한 의미로 '비동기성'을 사용합니다.

스레드에서 동기 커넥터를 실행하는 것은 옵션이 아닙니다.

생각해 보세요:그만큼 libmysqlclient / mysqlclient.dll 당신은 동기 소켓 호출을 사용하고 있습니다.OS 스케줄러는 I/O가 완료될 때까지 다른 스레드로 올바르게 전환하는데 차이점은 무엇입니까?(이를 위해 2k 스레드를 만들어서는 안된다는 사실은 제외하고 ..)

편집하다:mysql_real_connect()는 UNIX 소켓 매개변수를 지원합니다.아마도 mysql 서버 포트에서 자신을 읽고 ASIO를 사용하여 해당 UNIX 소켓에 쓸 수 있을 것입니다.대리권처럼 말이죠.

[ 스레드에서 동기 커넥터를 실행하는 것은 옵션이 아닙니다.사용 중인 libmysqlclient / mysqlclient.dll이 동기 소켓 호출을 수행합니다.OS 스케줄러는 I/O가 완료될 때까지 다른 스레드로 올바르게 전환합니다.]

이게 나를 괴롭히는구나!- '다른 스레드'는 쉽게 두 번째 동기화가 될 수 있습니다.mysql에 연결하고 다른 클라이언트와 마찬가지로 mysql에서 처리해야 합니까?내 직감은 여러 스레드를 사용하여 작동해야 한다는 것입니다.

MySQL Connector/C++는 JDBC 4.0의 C++ 구현입니다.

MySQL Connector/C++를 사용하는 참고 고객은 다음과 같습니다.- 오픈오피스 - MySQL 워크벤치

더 알아보기: http://forums.mysql.com/read.php?167,221298

JSON을 통해 대화하는 MySQL 앞에 또 다른 레이어를 배치하는 DBSlayer라는 프로젝트가 있습니다. http://code.nytimes.com/projects/dbslayer

사용을 고려해보셨나요? libdrizzle?나는 Drizzle과 별도의 프로젝트였을 때부터 이전 버전만 사용하고 비동기 쿼리 기능을 테스트했지만 언급할 만한 실제 벤치마크를 수행한 적이 없습니다.

내 생각에 유일한 해결책은 다음을 래핑하는 비동기 서비스를 만드는 것입니다. 표준 커넥터.하지만 ODBC API를 이해해야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top