你好!
我需要在 mysql (5.1) 上扫描一个非常大的表,
这就是该表或多或少的样子:
创建表`big_table`( `id` BIGINT(11) NOT NULL AUTO_INCREMENT, `main_id` INT(11) 默认为 NULL, `key` VARCHAR(20) NOT NULL, 主键(`id`), KEY `main_id_key` (`main_id`,`key`), ) 引擎=INNODB AUTO_INCREMENT=2315678197 默认字符集=utf8
我需要将 main_id + 键的所有唯一值放入一个新表中。
使用以下查询需要很长时间(3 天后仍在非常快的服务器上运行):
创建表`get_unique`( `main_id` int(11) NOT NULL, `key` varchar(20) NOT NULL, 主键(`main_id`,`key`) ) 引擎=InnoDB 默认字符集=utf8; 将忽略插入到 get_unique SELECT main_id,key FROM big_table
所以我的问题是 -
这会更快吗?
创建表`get_unique`( `main_id` int(11) NOT NULL, `key` varchar(20) NOT NULL, 主键(`main_id`,`key`) ) 引擎=InnoDB 默认字符集=utf8; 插入到 get_unique SELECT main_id,key FROM big_table 按 1,2 分组