Hi,

PyMySQL doesn't support MariaDB's protocol extension for bulk operations,
this is afaik only supported by MariaDB Connector/Python when using cursors
executemany() method.

If you have only INSERT statements PyMySQL will transform executemany to
multi value statement which also reduces roundtrips:

cursor.executemany("INSERT INTO t1 VALUES (%s)",
[("foo",),("bar,),("john",),("doe",)]) will be sent as
INSERT INTO t1 VALUES ("foo"),("bar"),("john"),("doe")

This approach  is a little bit slower than using the binary protocol
implementation but it is limited to SELECT statements and doesn't work with
UPDATE, REPLACE or DELETE.

/Georg

On Sun, Jan 26, 2025 at 2:33 PM E.S. Rosenberg via developers <
developers@lists.mariadb.org> wrote:

> Hey Sergei et al.,
> I have been trying to find information on how to do pipelining, I guess I
> am not looking in the right place or using the right terms, the thing
> closest to it that I found was compressed packets that can contain multiple
> packets.
> Any hints would be appreciated.
> Thanks!
> Eli
>
> Op do 23 jan 2025 om 20:42 schreef E.S. Rosenberg <
> es.rosenberg+lists.mariadb....@gmail.com>:
>
>> Sergei thanks for the information!
>>
>> You also immediately hit the nail on the head as to the issue of the
>> extra round trip, I will have a look at pipelining prepared statements,
>> specifically in PyMySQL.
>>
>> Thanks,
>> Eli
>>
>>
>>
>> Op do 23 jan 2025 om 19:08 schreef Sergei Golubchik <s...@mariadb.org>:
>>
>>> Hi, Eli,
>>>
>>> It's incompatibility.
>>>
>>> MariaDB only supports parameters in COM_STMT_PREPARE/COM_STMT_EXECUTE.
>>> You can pipeline them and avoid an extra round-trip, but it still be
>>> binary protocol, not text.
>>>
>>> On Jan 23, E.S. Rosenberg via developers wrote:
>>> > Hi,
>>> > Recently I found out about parameterized queries in MySQL, it seems to
>>> have
>>> > been supported at least since 8.0.x but it is not listed as an
>>> > incompatibility between mariadb and mysql yet the package spec for
>>> > COM_QUERY on mariadb does not mention any support for parameterized
>>> queries.
>>> >
>>> > So is this an incompatibility, some out of date docs or am I just
>>> looking
>>> > at the wrong com_query page?
>>> >
>>> > Refs:
>>> >
>>> https://dev.mysql.com/doc/dev/mysql-server/8.0.40/page_protocol_com_query.html
>>> > https://mariadb.com/kb/en/com_query/
>>> >
>>> > Thanks!
>>> > Eli
>>>
>>> Regards,
>>> Sergei
>>> Chief Architect, MariaDB Server
>>> and secur...@mariadb.org
>>>
>> _______________________________________________
> developers mailing list -- developers@lists.mariadb.org
> To unsubscribe send an email to developers-le...@lists.mariadb.org
>


-- 
Georg Richter, Staff Software Engineer
Client Connectivity
MariaDB Corporation Ab
_______________________________________________
developers mailing list -- developers@lists.mariadb.org
To unsubscribe send an email to developers-le...@lists.mariadb.org

Reply via email to