1

所以我一直在研究关于使用 TRUNCATE 和 DROP 的 SQL 标准。我的公司正在尝试确定我们是否应该在 DROP 之前使用 TRUNCATE 作为标准编码约定,或者我们是否应该只使用 DROP。通常,我们总是使用 TRUNCATE 和 DROP 而不仅仅是 DROP。

根据这个先前回答的问题,看起来没有理由同时使用两者: https ://dba.stackexchange.com/questions/4163/why-use-both-truncate-and-drop

上面的链接还解决了使用 TRUNCATE 的问题,存在不必要的开销。

但是,由于似乎很多人仍然同时使用 TRUNCATE 和 DROP 而不是只使用 DROP,那么在 DROP 之前使用 TRUNCATE 有什么好处?

4

1 回答 1

0

所以这取决于你的数据库、引擎和版本。

示例:现代版本的 mysql 通过执行 DROP 并重新创建表来执行 TRUNCATE。根据您可能遇到的错误,旧版本会从表中删除条目,这比删除表并重新创建要慢得多。这并不能解释为什么你会在 DROP 之前 TRUNCATE,而是为什么你会 DROP 并重新创建为 truncate 的优化版本。

其他数据库、引擎和版本可能有自己的特点。

如果没有理由对您当前的系统执行此操作,那么这可能是开发人员在不同系统上受此影响的一种行为。

于 2014-06-05T19:37:28.440 回答