Gerald: Mysql in eigenes Programm einbetten

Hallo,

ich habe ein sehr Mysql intensives C++ Programm. Momentan läuft bei mir ein Mysql server und auf diesen greife ich per socket zu.

Aber wie ich mir vorstelle ist das ziemlich langsam und es gibt schnellere Möglichkeiten ein Datenbanksystem abzufragen.

Eine Idee von mir wäre Mysql in mein Programm einzubinden.
Also den Aufruf per Socket und Versenden des Requests durch das direkte Aufrufen der Funktionen wie es Mysql nach Erhalt der Anfrage auch macht auszutauschen.

Also würde nur die Socketkommunikation (client - server) und die Anfragenparsung auf der MysqlServer Seite wegfallen.

Aber wie viel Arbeit macht es sowas zu realisieren?

Ich müsste doch dann den kompletten Mysql server code durchlesen und verstehen. Was von Wo und Warum und Wann aufgerufen wird. Wie viel Arbeit schätzt ihr ist das?
Wurde sowas schon mal versucht?
Oder gar erfolgreich umgesetzt?

Was haltet ihr davon?

Sind eine Performancesteigerung um 50 % realistisch? Oder eine Wunschvorstellung meinerseits?

Gerald

  1. Hallo Gerald,

    ich habe ein sehr Mysql intensives C++ Programm. Momentan läuft bei mir ein Mysql server und auf diesen greife ich per socket zu.

    Aber wie ich mir vorstelle ist das ziemlich langsam

    warum?

    und es gibt schnellere Möglichkeiten ein Datenbanksystem abzufragen.

    Optimiere Deine Abfragen: EXPLAIN.
    Optimiere Deinen DB-Server: Kapitel Optimierung
    Nutze die embedded-API: libmysqld, the Embedded MySQL Server Library

    Eine Idee von mir wäre Mysql in mein Programm einzubinden.

    Nutze die embedded-API: libmysqld, the Embedded MySQL Server Library

    Also den Aufruf per Socket und Versenden des Requests durch das direkte Aufrufen der Funktionen wie es Mysql nach Erhalt der Anfrage auch macht auszutauschen.

    Also würde nur die Socketkommunikation (client - server) und die Anfragenparsung auf der MysqlServer Seite wegfallen.

    Bitte überlasse das Parsen der SQL-Anweisung Deinem DBMS. Das kann diese eventuell auch optimieren.

    Sind eine Performancesteigerung um 50 % realistisch? Oder eine Wunschvorstellung meinerseits?

    Die sind oft durch Optimierung der SQL-Statements und cleverere Programmierung zu erreichen - ohne zu versuchen, MySQL nachzuprogrammieren.

    Freundliche Grüße

    Vinzenz