insert select (制造百万条记录)
在开始百万级数据的查询之前,自己先动手制造百万级的记录来供我们使用,使用的方法是insert select方法
INSERT 一般用来给表插入一个指定列值的行。但是,INSERT 还存在另一种形式,可以利用它将一条SELECT 语句的结果插入表中。这就是所谓的INSERT SELECT, 顾名思义,它是有一条INSERT语句和一条SELECT语句组成的。
现在,有一个warning_reparied表,有2447条记录,如下:mysql> select count(*) from warning_repaired;
+----------+
| count(*) |
+----------+
| 2447 |
+----------+
1 row in set (0.00 sec)
mysql>
使用这个warning_repaired表创建出一个百万级数量的表:
首先,创建一个新表warning_repaired1,mysql> CREATE TABLE `warning_repaired1` (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `device_moid` varchar(36) NOT NULL,
-> `device_name` varchar(128) DEFAULT NULL,
-> `device_type` varchar(36) DEFAULT NULL,
-> `device_ip` varchar(128) DEFAULT NULL,
-> `warning_type` enum('0','1','2') NOT NULL,
-> `domain_moid` varchar(36) NOT NULL,
-> `domain_name` varchar(128) DEFAULT NULL,
-> `code` smallint(6) NOT NULL,
-> `level` varchar(16) NOT NULL,
-> `description` varchar(128) DEFAULT NULL,
-> `start_time` datetime NOT NULL,
-> `resolve_time` datetime NOT NULL,
-> PRIMARY KEY (`id`),
-> UNIQUE KEY `id` (`id`)
-> ) ENGINE=InnoDB AUTO_INCREMENT=4895 DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.39 sec)
mysql> select count(*) from warning_repaired1;
+----------+
| count(*) |<