我正在使用拥有900万条记录的大桌子。我正在尝试备份该表。如下。
首次质询
Create table newtable1 as select * from hugetable ;
第二次查询
Select * into newtable2 from hugetable ;
这里的第一个查询似乎非常快。我想知道它的功能差异和为什么它与第二个查询比较快?哪一个是首选的?
答案 0 :(得分:4)
此命令(
create table as
)在功能上与SELECT INTO类似,但它更受欢迎,因为它不太可能与SELECT INTO语法的其他用法混淆。此外,CREATE TABLE AS提供了SELECT INTO提供的功能的超集。
所以两者都做同样的事情,但CREATE TABLE AS
是SQL标准的一部分(因此也适用于其他DBMS),而SELECT INTO
是非标准的。正如手册所述,您应该比非标准语法更喜欢CREATE TABLE AS
。
性能方面两者都是相同的,您看到的差异可能与系统上的缓存或其他活动有关。