具有数千个插入的MySQL事务 - 需要多少次"往返"?

Ass*_*vie 9 mysql sql database

我有C#代码通过ODBC访问MySQL.

它创建一个事务,执行几千个插入命令,然后提交.现在我的问题是,有多少"往返"可以说是针对数据库服务器发生的?我的意思是,它只是将每个插入命令传输到数据库服务器,还是缓存/缓冲它们并分批发送?这是可以配置的吗?

Ali*_*man 18

MySQL具有可以使用的扩展SQL样式,其中大量插入一次放入几个:

INSERT INTO `table` (`id`, `event`)  VALUES (1, 94263), (2, 75015), (3, 75015);
Run Code Online (Sandbox Code Playgroud)

在运行SQL查询本身之前,我通常会将几百个插入部分收集到一个字符串中.这将通过自己批量处理来减少解析和通信的开销.