MySQL批量参数化插入性能

时间:2017-05-13 12:01:02

标签: mysql bulkinsert sql-parametrized-query

我正在寻找一个在MySQL查询优化器/缓存方面更有知识的人。

我必须执行大小改变的数据集的批量插入操作(因此每次行数都会改变)。我想知道,假设这些查询是参数化的,那么批量插入查询是否会被缓存/重用?所以基本上我想知道MySQL是否足够聪明,看到这些插入是否完全相同并缓存单个插入查询(无论是每行插入还是多行打开一行)?然后重用优化的缓存查询?

为了让您更多地了解我们所讨论的数据量,它大约有500-600批次的批量插入,每个批量插入都有未知的行数(例如,它可能介于1到100000之间) 。他们一个接一个地执行。

那么批量插入是否会被缓存并重用?如果没有,将批量插入拆分成小批量(如X行的单个INSERT查询)会改变它吗?

我现在不想寻找另一种方式。简单地说,因为给定应用程序的编写方式是不可能的,所以我仅限于参数化和非参数化查询以及一个批量插入与多个批次。然后,每个"对象"被称为X次。我有,就像我说的那样,甚至可能是500或600次(但我现在不能改变)。

修改

我认为这个描述可能含糊不清,所以这里是一个列表:

  1. 进入迭代循环对象
  2. 识别要为该对象插入的数据
  3. 创建批量插入查询(当前非参数化,但我想更改它)
  4. 执行批量查询
  5. 转到另一个迭代
  6. 所以我现在真正能改变的是第3点和第4点。

0 个答案:

没有答案