INSERTING blob时列顺序是否重要?

时间:2015-06-27 00:22:29

标签: mysql

当INSERTING执行时,SQL语句中的列顺序有何不同?特别是关于BLOB类型?

我假设答案是否定的,但我到目前为止找到的答案都集中在SELECTS查询性能上。 Example 1Example 2

详情:

使用此数据库的应用程序有一个重构,我发现随着表的行增长,插入性能会下降。我之前没有看到插入性能有任何下降。

  • 旧的应用程序和新应用程序之间的MySQL数据库完全相同:相同的配置设置,相同的表结构。因此,虽然数据库配置优化可能适用于此处,但目前我正在尝试理解为什么INSERT查询性能存在差异。
  • 在应用程序方面,它与旧应用程序和新应用程序之间的数据库驱动程序相同
  • 持久性代码(JDBC模板与Hibernate)存在差异,我看到的一个区别是先前使用BLOB列(longblob)生成的SQL INSERT语句作为最后一列,现在使用BLOB生成SQL INSERT作为声明中间的一栏。
  • 新旧应用程序插入的数据大部分相同。
  • 提交的方式和频率相同。

是的,我知道在这种情况下还有其他因素在起作用,但我认为我只是确认INSERT列排序与插入BLOB类型无关。

编辑1:性能下降我指的是:

  • 插入100k行(每次提交1k)所需的时间从每100k约25秒增加到每100k批次的27,30,35秒。由于这是一个测试数据库,因此我可以根据需要清除数据。
  • 之前我没有看到这种行为,但仍然没有在HSQL上看到它。
  • 我正在测量在app端插入100k的时间。

编辑2:我使用的是版本5.6.20,因此在INSERT上解释为not available。但是,我确实使用show profile作为described here。奇怪的是,MySQL报告新查询的持续时间比旧查询要快得多(我很难理解)

新查询时长:0.006389
旧查询持续时间:0.028531

0 个答案:

没有答案