Pergunta

Fazer qualquer assíncrona existem conectores para o Mysql, que pode ser usado dentro de um aplicativo C ou C++?Eu estou olhando para algo que pode ser conectado em um reator padrão escrito em Impulso.Asio.

[Edit:] Executando um síncrona conector em segmentos não é uma opção.

Foi útil?

Solução

http://forums.mysql.com/read.php?45,183339,183339 aproveite

Atualizado link para o artigo original mostrando como fazer assíncrono consultas mysql:

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

Outras dicas

Eu tive um problema semelhante com tecnologias muito diferentes:Torcida do python (reator baseado IO) e o sqlAlchemy (??).Enquanto procura por uma solução, encontrei cerca de uma sAsync projeto que simplesmente criado um thread separado para o sqlAlchemy e, em seguida, respondeu às solicitações.

Dado que ASIO é baseado no nível baixo OS recursos (tais como aio_read() ou ReadFileEx (), etc) e um nível de sistema operacional do reator (ou proactor, no Windows' caso) eu não acho que você tem outra chance de imitar o 'asynchronousness' por meios similares.

A execução de um síncrona conector em segmentos não é uma opção

Pense sobre isso:o libmysqlclient / mysqlclient.dll você está usando faz síncrona chamadas de socket.O sistema operacional programador corretamente irá mudar para outro thread até que a e/S é concluída, o que é então a diferença?(além do fato de que você não deve fazer 2k threads por isso..)

Editar:mysql_real_connect() suporta um socket UNIX parâmetro.Você pode, supostamente, leia-se a partir do servidor mysql porta e gravação para que o socket UNIX apenas usando o ASIO.Como um proxyfication.

[ A execução de um síncrona conector em segmentos não é uma opção Pense sobre isso:o libmysqlclient / mysqlclient.dll você está usando faz síncrona chamadas de socket.O sistema operacional programador corretamente irá mudar para outro thread até que a e/S é concluída]

Isso está me incomodando!- o 'outro thread' poderia facilmente ser uma segunda sincronia.conexão ao mysql, e deve ser tratada pelo mysql, assim como outro cliente por completo?Meu gutfeel é que ele deve funcionar com vários segmentos.

MySQL Connector/C++ é uma implementação C++ de JDBC 4.0

A referência de clientes que usam o MySQL Connector/C++ são:- OpenOffice - MySQL Workbench

Saiba mais: http://forums.mysql.com/read.php?167,221298

Existe um projeto chamado DBSlayer que coloca outra camada na frente do MySQL que você conversar através de JSON. http://code.nytimes.com/projects/dbslayer

você já pensou em usar libdrizzle?eu tenho usado apenas uma versão antiga, de quando era um projeto separado da garoa, e eu testei a consulta assíncrona recursos, mas eu nunca fiz qualquer real benchmarks que vale a pena mencionar.

Eu acho que a única solução será a de criar um serviço assíncrono que envolve um conector padrão de.Você vai precisar para entender as APIs de ODBC embora.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top