Question

Faire tout asynchrone existe des connecteurs pour Mysql qui peut être utilisé dans une application C ou C++?Je suis à la recherche de quelque chose qui peut être branché dans une réacteur modèle écrit dans Coup de pouce.Asio.

[Edit:] en cours d'Exécution synchrone connecteur dans des threads n'est pas une option.

Était-ce utile?

La solution

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

Mise à jour du lien vers l'article original montrant comment le faire asynchrone des requêtes mysql:

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

Autres conseils

J'ai eu un problème similaire avec des technologies très différentes:Twisted python (les réacteurs IO) et de sqlAlchemy (??).Alors que la recherche d'une solution, j'ai trouvé sur un sAsync projet qui a tout simplement créé un thread séparé pour sqlAlchemy et ensuite répondu à des demandes.

Étant donné que l'ASIO est basé sur le faible niveau des fonctionnalités du système d'exploitation (comme aio_read() ou ReadFileEx (), etc) et un niveau de l'OS du réacteur (ou proactor, dans Windows cas) je ne pense pas que vous avez une autre chance que l'émulation de la 'asynchronousness' par des moyens similaires.

L'exécution synchrone connecteur dans des threads n'est pas une option

Pensez-y:l' libmysqlclient / mysqlclient.dll vous utilisez rend synchrone prise d'appels.Le système d'exploitation planificateur correctement passer à un autre thread jusqu'à ce que le I/O est fini, alors c'est quoi la différence?(outre le fait que vous ne devriez pas prendre 2k threads pour ça..)

Edit:mysql_real_connect() prend en charge une socket UNIX paramètre.Vous pouvez soi-disant te lire depuis le serveur mysql de port et d'écrire pour que le socket UNIX uniquement à l'aide de l'ASIO.Comme un proxyfication.

[ L'exécution synchrone connecteur dans des threads n'est pas une option Pensez-y:le libmysqlclient / mysqlclient.dll vous utilisez rend synchrone prise d'appels.Le système d'exploitation planificateur correctement passer à un autre thread jusqu'à ce que le I/O est fini]

C'est sur écoute-moi!- le "un autre thread" pourrait aussi bien être une seconde synchronisation.connexion à mysql, et doivent être gérées par mysql comme il le ferait pour un autre client tout à fait?Mon gutfeel c'est qu'il doit travailler à l'aide de plusieurs threads.

MySQL Connector/C++ C++ mise en œuvre de JDBC 4.0

La référence des clients qui utilisent MySQL Connector/C++ sont:- OpenOffice - MySQL Workbench

En savoir plus: http://forums.mysql.com/read.php?167,221298

Il existe un projet DBSlayer qui met une autre couche en face de MySQL que vous parlez à travers JSON. http://code.nytimes.com/projects/dbslayer

avez-vous considéré l'utilisation libdrizzle?j'ai utilisé seulement une vieille version, à partir de quand c'était un projet distinct de la bruine, et j'ai testé la requête asynchrone fonctionnalités, mais je n'ai jamais fait tout les tests de performance réels vaut la peine de mentionner.

Je pense que la seule solution sera de créer un service asynchrone qui encapsule une connecteur standard.Vous aurez besoin de comprendre les Api ODBC bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top