create table b1 as select * from b建表锁表测试

A: create table a1 like a; insert into a1 as select * from a;

B: create table b1 as select * from b;

测试AB两种建表语句对原始表的影响。其中a、b的数据量均为300000 rows。

如果使用A种方式建表,insert过程可能会堵塞DML操作(根据innodb mvcc原理)

如果使用B中方式建表,此建表过程全程锁表;

建议:生产环境使用A种方式建备份表;

时间: 2024-10-13 16:05:32

create table b1 as select * from b建表锁表测试的相关文章

create table xxx as select 与 create table xxx like

create table xxx as select xxx,创建新表,没有原表的完整约束,会把原表的数据拷贝一份,如下:mysql> desc stu;+------------+--------------+------+-----+---------+----------------+| Field      | Type         | Null | Key | Default | Extra          |+------------+--------------+------

MongoDB 实现 create table tab2 as select

1. var result = db.foo.aggregate(...);db.bar.insert(result.result); 2. var temp1 = db.mtb1.find(name:"joe");while(temp1.hasNext()) db.tab2.insert(temp1.next()); 相当于sql中:create table tab2 as select * from mtb1 where name='joe'; 原文地址:https://www.c

oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别

create table  as select * from和insert into select from两种表复制语句区别 [sql] view plain copy create table targer_table as select * from source_table insert into target_table(column1,column2) select column1,column2 from source_table 以上两句都是将源表source_table的记录插

Create table as select

create table xxx as select create table table1 as select * from table2 where 2=3; 根据table2的表结构,创建tables1 create table table1 as select * from table2 根据table2的表结构,创建tables1,同时将table2的数据插入table1 create table table1(column1_rename,column2_rename) as sel

CREATE TABLE 表名 AS SELECT 语句

1.新表不存在复制表结构即数据到新表 ? 1 2 create table new_table select * from old_talbe; 这种方法会将old_table中所有的内容都拷贝过来,用这种方法需要注意,new_table中没有了old_table中的primary key,Extra,auto_increment等属性,需要自己手动加,具体参看后面的修改表即字段属性.只复制表结构到新表 ? 1 2 3 4 5 6 # 第一种方法,和上面类似,只是数据记录为空,即给一个false

慎用create table as select,一定要注意默认值的问题

再做一些数据迁移时候,很多人会使用create table  as select * from table where id=-1的方式来年建立一摸一样的表,但是这样做有个很大的弊端,不能将原表中的default value也一同迁移过来,可以看下面的例子: 第一,新建一个表 -- Create table create table table01 (   id        number(16),   add_date  date default sysdate,   status    nu

sqlserver不能直接create table as select

sqlserver不能直接create table as select 在sqlserver 下想复制一张表的,想到oracle下直接create table xxx as select * from ....即可.但是结果却是错误的,baidu一下发现.sqlserver的语法是 : select * into tablenew from tableold Insert into select 与create table as的性能测试及create table 2013-10-05 09:5

MySQL中表复制:create table like 与 create table as select

CREATE TABLE A LIKE B 此种方式在将表B复制到A时候会将表B完整的字段结构和索引复制到表A中来. CREATE TABLE A AS SELECT x,x,x,xx FROM B LIMIT 0 此种方式只会将表B的字段结构复制到表A中来,但不会复制表B中的索引到表A中来.这种方式比较灵活可以在复制原表表结构的同时指定要复制哪些字段,并且自身复制表也可以根据需要增加字段结构. 两种方式在复制表的时候均不会复制权限对表的设置.比如说原本对表B做了权限设置,复制后,表A不具备类似

MySQL中表复制:create table like 与 create table as select

1    CREATE TABLE A LIKE B此种方式在将表B复制到A时候会将表B完整的字段结构和索引复制到表A中来. 2.    CREATE TABLE A AS SELECT * FROM B 此种方式只会将表B的字段结构复制到表A中来,但不会复制表B中的索引到表A中来.这种方式比较灵活可以在复制原表表结构的同时指定要复制哪些字段,并且自身复制表也可以根据需要增加字段结构. 两种方式在复制表的时候均不会复制权限对表的设置.比如说原本对表B做了权限设置,复制后,表A不具备类似于表B的权