我所知道的MYSQL快速建表的3种方法

方法一:创建一模一样的表结构(包括索引,不包括表中数据)

mysql> desc t_my_series;
+-------------+------------+------+-----+---------+----------------+
| Field       | Type       | Null | Key | Default | Extra          |
+-------------+------------+------+-----+---------+----------------+
| ID          | bigint(20) | NO   | PRI | NULL    | auto_increment |
| CREATE_TIME | datetime   | YES  |     | NULL    |                |
| UPDATE_TIME | datetime   | YES  |     | NULL    |                |
| APP_USER_ID | bigint(20) | YES  | MUL | NULL    |                |
| SERIES_ID   | bigint(20) | YES  | MUL | NULL    |                |
+-------------+------------+------+-----+---------+----------------+
5 rows in set (0.03 sec)
mysql> create table t_my_series_new like t_my_series;
Query OK, 0 rows affected (0.04 sec)
mysql> desc t_my_series_new;
+-------------+------------+------+-----+---------+----------------+
| Field       | Type       | Null | Key | Default | Extra          |
+-------------+------------+------+-----+---------+----------------+
| ID          | bigint(20) | NO   | PRI | NULL    | auto_increment |
| CREATE_TIME | datetime   | YES  |     | NULL    |                |
| UPDATE_TIME | datetime   | YES  |     | NULL    |                |
| APP_USER_ID | bigint(20) | YES  | MUL | NULL    |                |
| SERIES_ID   | bigint(20) | YES  | MUL | NULL    |                |
+-------------+------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

方法2:创建一模一样的表结构(不包括索引,不包括表中数据)

mysql> create table t_my_series_new select * from t_my_series limit 0;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc t_my_series_new ;
+-------------+------------+------+-----+---------+-------+
| Field       | Type       | Null | Key | Default | Extra |
+-------------+------------+------+-----+---------+-------+
| ID          | bigint(20) | NO   |     | 0       |       |
| CREATE_TIME | datetime   | YES  |     | NULL    |       |
| UPDATE_TIME | datetime   | YES  |     | NULL    |       |
| APP_USER_ID | bigint(20) | YES  |     | NULL    |       |
| SERIES_ID   | bigint(20) | YES  |     | NULL    |       |
+-------------+------------+------+-----+---------+-------+

5 rows in set (0.00 sec)

方法3:通过分别备份表结构和表数据,然后rename原表,导入备份的表结构和表数据恢复原表的方式!(包括索引,包括表中数据!)

#备份t_my_series表结构和数据
$MYSQLDUMP rrmj t_my_series -d >t_my_series.frm
$MYSQLDUMP rrmj t_my_series -t >t_my_series.data
#rename表t_my_series为t_my_series_bak
$MYSQL -e "use rrmj;rename table t_my_series to t_my_series_bak;"
#导入t_my_series表结构和数据,恢复t_my_series表
$MYSQL rrmj  < t_my_series.frm
$MYSQL rrmj  < t_my_series.data
时间: 2024-08-24 19:09:57

我所知道的MYSQL快速建表的3种方法的相关文章

MySQL数据库分表的3种方法【转】

一,先说一下为什么要分表 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了.分表的目的就在于此,减小数据库的负担,缩短查询时间. 根据个人经验,mysql执行一个sql的过程如下:1,接收到sql;2,把sql放到排队队列中 ;3,执行sql;4,返回执行结果.在这个执行过程中最花时间在什么地方呢?第一,是排队等待的时间,第二,sql的执行时间.其实这二个是一回事,等待的同时,肯定有sql在执行.所以我们要缩短sql的执行时间. mysql中有一种

mysql workbench建表时PK,NN,UQ,BIN,UN,ZF,AI

[intrinsic column flags] (基本字段类型标识) - PK: primary key (column is part of a pk) 主键 - NN: not null (column is nullable) 非空 - UQ: unique (column is part of a unique key) 唯一 - AI: auto increment (the column is auto incremented when rows are inserted) 自增

mysql workbench 建表时 PK,NN,UQ,BIN,UN,ZF,AI解释

mysql workbench 建表时 - PK: primary key (column is part of a pk) 主键 - NN: not null (column is nullable) 非空 - UQ: unique (column is part of a unique key) 唯一 - AI: auto increment (the column is auto incremented when rows are inserted) 自增 - BIN: binary (i

mysql分表的三种方法

mysql分表的3种方法 一,先说一下为什么要分表 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了.分表的目的就在于此,减小数据库的负担,缩短查询时间. 根据个人经验,mysql执行一个sql的过程如下:1,接收到sql;2,把sql放到排队队列中 ;3,执行sql;4,返回执行结果.在这个执行过程中最花时间在什么地方呢?第一,是排队等待的时间,第二,sql的执行时间.其实这二个是一回事,等待的同时,肯定有sql在执行.所以我们要缩短sql的执行

MySQL数据库的备份与恢复的三种方法

MySQL数据库的备份与恢复的三种方法 1.利用mysqldump实现从逻辑角度完全备份mysql,配合二进制日志备份实现增量备份 2.利用lvs快照从物理角度实现几乎热备的完全备份,配合二进制日志备份实现增量备份 3.利用percona公司的xrabackup实现完全热备份与增量热备份 实验环境:RHEL5.8 ,SElinux关闭,MySQL是tar包初始化安装版本5.5.28 一.测试环境准备 1.1 mysql的安装就不说了,见http://laoguang.blog.51cto.com

MySQL中删除数据的两种方法

转自:http://blog.csdn.net/apache6/article/details/2778878 在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句. DELETE语句可以通过WHERE对要删除的记录进行选择.而使用TRUNCATE TABLE将删除表中的所有记录.因此,DELETE语句更灵活. 如果要清空表中的所有记录,可以使用下面的两种方法: DELETE FROM table1 TRUNCATE TABLE table1 其

mysql myisam转innodb的2种方法

mysql myisam转innodb的2种方法 mysql中的myisam和innodb有什么区别.一个好比便利店,一个好比大型购物中心,他们是为了适应不同的场合而存在的.当流量比较小,我们可以用myisam,当流量大时,我们可能会把数据库中的,全部表或者部分表转换成innodb.下面说2种切实可行的方法来完成这种转换. 一,用alter table来实现. mysql> alter table merchant engine=innodb; 转换方法很简单.myisam在磁盘上的储存有三个文

mysql大批量插入数据的4种方法示例

前言 本文主要给大家介绍了关于mysql大批量插入数据的4种方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法一:循环插入 这个也是最普通的方式,如果数据量不是很大,可以使用,但是每次都要消耗连接数据库的资源. 大致思维如下 (我这里写伪代码,具体编写可以结合自己的业务逻辑或者框架语法编写) ? 1 2 3 4 5 6 7 8 9 10 11 12 13 for($i=1;$i<=100;$i++){  $sql = 'insert...............';  /

ABAP 动态生成内表的几种方法

最近要写个程序,既有更新的,也有删除的,需要涉及到很多系统表,如果一个表一个表进行更新或者删除太慢了,于是就想通过创建动态内表来实现这些功能,在网上找了一些资料,经过多次尝试,终于测试成功了.网上讲述的创建动态内表的方法大致有两种.我做了一下测试,源代码附后.在这里提醒大家一点,在做动态更新程序的时候,要注意两点:      1.使用modify (p_tabname) from <dyn_wa>. 的时候,一定要确定要更新的字段是不是系统表的关键字段,如果是关键字段的话,需要先删除这条记录,