文档章节

[MySQL优化案例]系列 -- DISABLE/ENABLE KEYS的作用

叶金荣
 叶金荣
发布于 2017/04/13 13:22
字数 353
阅读 4
收藏 0
作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究。
有一个表 tbl1 的结构如下:
CREATE TABLE `tbl1` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` char(20) NOT NULL default '',
  PRIMARY KEY  (`id`),
  KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
该表里已经存在了200万条记录.
现在, 需要把 tbl1 中的所有记录全部导到另一个完全相同的表 tbl2 中去.
1. 如果采用以下传统的方式, 则执行时间为: 98.01s
mysql>INSERT INTO tbl2 SELECT * FROM tbl1;
Query OK, 2000000 row affected (1 min 38.01 sec)
Records: 2000000  Duplicates: 0  Warnings: 0
2. 如果是用以下SQL语句, 则执行时间为: 80.85s (36.30 + 44.55)
mysql>ALTER TABLE tbl2 DISABLE KEYS;
Query OK, 0 rows affected (0.00 sec)
mysql>INSERT INTO tbl2 SELECT * FROM tbl1;
Query OK, 2000000 row affected (36.30 sec)
Records: 2000000  Duplicates: 0  Warnings: 0
mysql>ALTER TABLE tbl2 ENABLE KEYS;
Query OK, 0 rows affected (44.55 sec)
从上面的测试结果来看, 在大批量导入时先禁用索引, 在完全导入后, 再开启索引, 一次性完成重建索引的效率会相对高很多, 经过反复几次测试, 感觉后者基本能比前者快 1.2 倍左右. 这也就是 LOAD DATAL INFILE 相对较快的原因之一.
本文出自 “MySQL中文网”博客 http://www.imysql.cn/
 

本文出自 “老叶茶馆” 博客,转载请与作者联系!

本文转载自:http://imysql.blog.51cto.com/1540006/308361

叶金荣

叶金荣

粉丝 95
博文 259
码字总数 0
作品 0
福州
数据库管理员
私信 提问
mysqldump备份还原和mysqldump导入导出语句大全详解

mysqldump备份还原和mysqldump导入导出语句大全详解 mysqldump备份: mysqldump -u用户名 -p密码 -h主机 数据库 a -w "sql条件" --lock-all-tables > 路径 案例: mysqldump -uroot -p1234 ......

SibylY
2013/09/29
216
0
mysql备份指定条件的sql脚本

mysqldump -uroot -proot DBName tabaleName -w" 条件='????' " --lock-all-tables > 目标路径 导入 进入mysql.exe mysql>source d:tmp1.sql 转自:http://blog.chinaunix.net/uid-27038861-......

杰克穷死s
2014/10/17
111
0
php configure参数及 安装扩展

进程通信方式:共享内存、消息队列、 PHP对共享内存段的操作有两组函数:System V IPC和Shared Memory。 其中System V IPC由AT&T的贝尔实验室对早期的UNIX系统贡献而来,现在的linux系统都完美...

SibylY
2016/04/18
205
0
Disable Performance_schema to Save Mysql's Memory

Disable Performance_schema to Save Mysql's Memory memoryboxes blog2018-04-022 阅读 performanceschemadisablemysql 小VPS内存一般都不大,比如 1GB 什么的。估计总是发现装完 LAMP 就基......

memoryboxes blog
2018/04/02
0
0
编译安装PHP7

2)安装 libmcrypt mhash mcrypt 注:mcrypt依赖前两者 注:configure: error: * libmcrypt was not found 或者 3)编译安装PHP7 说明:PHP7 移除了已经被废弃的函数,如 mysql_ 系列函数在 PH...

小田天
2016/11/17
31
0

没有更多内容

加载失败,请刷新页面

加载更多

skywalking(容器部署)

skywalking(容器部署) 标签(空格分隔): APM [toc] 1. Elasticsearch SkywalkingElasticsearch 5.X(部分功能报错、拓扑图不显示) Skywalking需要Elasticsearch 6.X docker network create......

JUKE
30分钟前
7
0
解决Unable to find a single main class from the following candidates [xxx,xxx]

一、问题描述 1.1 开发环境配置 pom.xml <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!--一定要对上springboot版本号,因......

TeddyIH
31分钟前
7
0
Dubbo服务限制大数据传输抛Data length too large: 13055248, max payload: 8388608解决方案

当dubbo服务提供者向消费层传输大数据容量数据时,会受到Dubbo的限制,报类似如下异常: 2019-08-23 11:04:31.711 [ DubboServerHandler-XX.XX.XX.XXX:20880-thread-87] - [ ERROR ] [com.al...

huangkejie
34分钟前
7
0
HashMap和ConcurrentHashMap的区别

为了线程安全,ConcurrentHashMap 引入了一个 “分段锁” 的概念。具体可以理解把一个大的 map 拆分成 N 个小的 Map 。最后再根据 key.hashcode( )来决定放到哪一个 hashmap 中去。 hashmap ...

Garphy
34分钟前
6
0
购买SSL证书需要注意哪些问题

为了保障网站的基本安全,为网站部署SSL证书,已经是一种常态了。各大浏览器对于安装了SSL证书的网站会更友好,并且不会发出“不安全”的提示。部署SSL证书之前首先得去给网站购买一个SSL证书...

安信证书
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部