SQL INSERT性能省略字段名称?

Mar*_*aio 11 sql performance

有谁知道从INSERT查询中删除字段名称是否会带来一些性能改进?

我的意思是:

INSERT INTO table1 VALUES (value1, value2, ...)
Run Code Online (Sandbox Code Playgroud)

更快地完成数据库而不是这样做:

INSERT INTO table1 (field1, field2, ...) VALUES (value1, value2, ...)
Run Code Online (Sandbox Code Playgroud)

我知道这可能是一个毫无意义的性能差异,但只是要知道.

我通常使用MySQL和PostgreSQL作为DB.

mar*_*c_s 13

不,实际上恰恰相反!至少对于Microsoft SQL Server - 您没有指定您正在谈论的数据库.....

如果未在SELECT或INSERT中指定字段,则SQL Server的查询处理器必须首先检查系统目录以找出确实可用的字段.

所以我总是建议明确列出你想要的字段 - 在SELECT上和INSERT一样多.

  • 当一些傻瓜决定重新排列列顺序时,它还可以防止您破坏代码.始终指定要在生产中运行的所有语句中的字段. (4认同)
  • +1我原则上同意,但是想知道 - 无论如何都不必在后一种情况下查询列定义/默认值的模式吗? (2认同)
  • +1 而且,如果不指定列名,对于具有 10 列的插入查询来说,可读性会非常糟糕。 (2认同)
  • +1,但不要忘记列表列会在添加新列时保留旧代码. (2认同)