我有C#代码通过ODBC访问MySQL.
它创建一个事务,执行几千个插入命令,然后提交.现在我的问题是,有多少"往返"可以说是针对数据库服务器发生的?我的意思是,它只是将每个插入命令传输到数据库服务器,还是缓存/缓冲它们并分批发送?这是可以配置的吗?
MySQL具有可以使用的扩展SQL样式,其中大量插入一次放入几个:
INSERT INTO `table` (`id`, `event`) VALUES (1, 94263), (2, 75015), (3, 75015);
在运行SQL查询本身之前,我通常会将几百个插入部分收集到一个字符串中.这将通过自己批量处理来减少解析和通信的开销.