我正在寻找一个在MySQL查询优化器/缓存方面更有知识的人。
我必须执行大小改变的数据集的批量插入操作(因此每次行数都会改变)。我想知道,假设这些查询是参数化的,那么批量插入查询是否会被缓存/重用?所以基本上我想知道MySQL是否足够聪明,看到这些插入是否完全相同并缓存单个插入查询(无论是每行插入还是多行打开一行)?然后重用优化的缓存查询?
为了让您更多地了解我们所讨论的数据量,它大约有500-600批次的批量插入,每个批量插入都有未知的行数(例如,它可能介于1到100000之间) 。他们一个接一个地执行。
那么批量插入是否会被缓存并重用?如果没有,将批量插入拆分成小批量(如X行的单个INSERT查询)会改变它吗?
我现在不想寻找另一种方式。简单地说,因为给定应用程序的编写方式是不可能的,所以我仅限于参数化和非参数化查询以及一个批量插入与多个批次。然后,每个"对象"被称为X次。我有,就像我说的那样,甚至可能是500或600次(但我现在不能改变)。
我认为这个描述可能含糊不清,所以这里是一个列表:
所以我现在真正能改变的是第3点和第4点。