MySQL - Komprimiertes Protokoll



  • Hallo,

    habe es nun hinbekommen Daten in komprimierter Form abzurufen.
    Ich nutze die "DALP" ( googelt mal :-)) für PalmOS und PocketPc.

    Was ich aber noch nicht rausbekommen konnte ist, ob man beim Senden auch
    mehrere Insert oder Update Anweisungen zusammenpacken kann. Weil ja die Komprimierung von z.B "Insert into table ..." sich aufgund mangelnder Wiederholungen außer Leerzeichen, kaum sinnhaft ist.
    Könnte man aber einen ganzen Block von mehreren Inserts in die gleiche Tabelle
    zusammenbrutzeln und packen und absenden, wäre eine deutliche Ersparnis möglich.

    RB



  • insert into myTable (col1, col2, ...) values (x1,y1,z1,...), (x2, y2, z2, ...), (...), ...
    

    ???



  • ne anders,

    habe bei postgresql.org inner docus gefunden:

    43.2.2. Simple Query
    ...
    Since a query string could contain several queries (separated by semicolons),
    there might be several such response sequences before the backend finishes
    processing the query string. ReadyForQuery is issued when the entire string
    has been processed and the backend is ready to accept a new query string.
    ...

    Also:
    "Insert into tab1 set val=1 where id=1;Insert into tab1 set val=2 where id=2;Insert into tab1 set val=3 where id=3"
    Sinnhaftigkeit der Anweisungen mal dahingestellt.
    Wenn das durch den Kompressor geht ist die Kompressionsrate erheblich günstiger als wenn ich
    "Insert into tab1 set val=1 where id=1" -> komprimiere -> absende
    "Insert into tab1 set val=2 where id=2" -> komprimiere -> absende
    "Insert into tab1 set val=3 where id=3" -> komprimiere -> absende

    jetzt klar was ich meine ?

    Nur ebend für MySQL ... 🤡

    Gruß
    RB



  • keiner ne Idee, was der OP will ?



  • RED-BARON schrieb:

    "Insert into tab1 set val=1 where id=1"
    "Insert into tab1 set val=2 where id=2"
    "Insert into tab1 set val=3 where id=3"

    Seit wann sind solche querys in MySQL möglich? Vor allem was bezwecken sie? Ohne das "WHERE" macht das ganze ja noch Sinn und würde dann so zusammengefasst, wie anonymus das geschrieben hat....

    Edit: Hab noch was in der Doku gefunden, allerdings betrifft das jetzt die MySQL-API, wie das in der "DALP" umgesetzt wurde, weiß ich nicht:

    int mysql_real_query(MYSQL *mysql, const char *query, unsigned long length)

    Description

    Executes the SQL query pointed to by query, which should be a string length bytes long. Normally, the string must consist of a single SQL statement and you should not add a terminating semicolon (‘;’) or \g to the statement. If multiple-statement execution has been enabled, the string can contain several statements separated by semicolons. See Section 18.2.9, “C API Handling of Multiple Query Execution”.


Anmelden zum Antworten