Assíncrona Mysql connector
-
09-06-2019 - |
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.
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.