mysqldump新增参数控制插入数据和建索引顺序

InnoDB有个特性“fast index creation”,创建和删除非聚簇索引时不需要重建表。

这句是转载的:This mechanism also means that you can generally speed the overall process of creating and loading an indexed table by creating the table with only the clustered index, and adding the secondary indexes after the data is loaded.

 

因此想到在mysqldump中,如果构造为先执行insert,再加索引,能够加速大的InnoDB表的重建过程。

 

1、mysqldump中的 “disable keys”

  其实类似的思路在现在的mysqldump中已经有了,在insert之前有alter table xxx disable keys,插入数据之后alter table xxx enable keys. 但这个InnoDB 不支持。

 

2、实现

新增一个参数--keys-last,当使用--keys-last=1时,在create table之后把非聚簇索引删除,insert之后再创建。

 

3、执行效果

CREATE TABLE `tb` (

  `a` int(11) NOT NULL DEFAULT '0',

  `c` int(11) DEFAULT NULL,

  PRIMARY KEY (`a`),

  UNIQUE KEY `a` (`a`,`c`),

  KEY `b` (`c`,`a`),

  KEY `ccc` (`a`,`c`),

  CONSTRAINT `tb_ibfk_1` FOREIGN KEY (`a`) REFERENCES `ta` (`a`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Insert into tb values(1,1);

bin/mysqldump -Srun/mysql.sock --keys-last=1 --disable-keys=0  -uroot test tb

LOCK TABLES `tb` WRITE;

ALTER TABLE `tb` DROP  KEY `a` , DROP KEY `b` , DROP KEY `ccc` ;

INSERT INTO `tb` VALUES (1,1);

ALTER TABLE `tb` ADD UNIQUE KEY `a` (`a`,`c`), ADD KEY `b` (`c`,`a`), ADD KEY `ccc` (`a`,`c`);

UNLOCK TABLES;

/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

 

由于明确是InnoDB的表,将disable-keys的两个语句取消。

       Patch文件 (基于5.5.20) http://bugs.mysql.com/file.php?id=17978

CREATE TABLE实战指南:SQL schema设计与数据库建表规范 CREATE TABLE是关系型数据库中定义数据结构的基础操作,其本质是确立数据契约与业务规则的固化表达。理解SQL schema设计原理,需从数据类型选择、主键策略、索引规划、约束嵌入等核心维度展开——它们共同决定系统的可扩展性、查询性能与演进韧性。在高并发、多时区、强一致性要求的现代应用(如电商订单、金融交易、SaaS租户)中,一个未经审慎设计的建表语句可能引发慢查询、数据不一致甚至资损事故。本文聚焦真实工程场景,解析如何基于业务语义前置规划字段语义、约束边界与索引覆盖,并落地MySQL 8.0+下的高 阅读详情

相关推荐

MySQL建表避坑指南:从字段类型到主键设计的生产级实践

MySQL建表是数据库开发的起点,本质是定义数据存储结构与访问契约。理解INT/BIGINT的符号性、VARCHAR在utf8mb4下的字节开销、DATETIME与TIMESTAMP的时区与范围差异,是避免线上事故的基础。主键选择直接影响聚簇索引性能和分布式扩展能力,而字符集(utf8mb4)、校对规则(utf8mb4_0900_ai_ci)和NOT NULL约束则决定了数据一致性与查询稳定性。这些设计决策不仅关乎语法正确性,更直接关联存储效率、并发吞吐与分库分表演进路径。本文聚焦真实生产场景中的建表逻辑、

weixin_30460489的博客 434

MySQL中的mysqldump命令使用详解

MySQL实用命令 Wikipedia,自由的百科全书 一) 连接MYSQL:    格式: mysql -h主机地址 -u用户名-p用户密码 1、例1:连接到本机上的MYSQL    首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:\mysql\bin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是

★昔梦无痕★ 7169

使用MySQL MySqldump命令导出数据时的注意事项

主要介绍了使用MySQL MySqldump命令导出数据时的注意事项,很实用的经验总结,需要的朋友可以参考下

mysql添加普通索引_mysql在建表语句中添加索引

普通索引创建创建普通索引,即不添加 UNIQUE、FULLTEXT 等任何参数。【例】创建表名为 score 的数据表,并在该表的 id 字段上建立索引,SQL 语句如下:CREATE table score(id int(11) AUTO_INCREMENT primary key not null,name varchar(50) not null,math int(5) ...

weixin_42429109的博客 2864

Qt6安装保姆级教程:从国内镜像下载到配置避坑指南(附清华/中科大源)

本文提供详细的Qt6安装与配置指南,重点介绍如何利用清华大学、中国科学技术大学等国内镜像源解决下载速度慢的问题。内容涵盖在线安装器获取、组件选择策略、环境变量配置以及常见编译与部署问题的排查方法,旨在帮助国内开发者高效、顺畅地完成Qt6开发环境搭建。

weixin_29281915的博客 634

802.11ax 的OFDMA资源分配详解

802.11ax 引入的最重要的技术就是OFDMA。OFDMA中引入了RU(资源块)概念,也就是20Mhz/40Mhz/80Mhz/160Mhz的带宽可以切割成不同尺寸的RU,分配给不同的用户使用,这样就大大提高了频谱资源的利用率。 常见的RU尺寸有26/52/102/242/484/996,单位是子载波,每个子载波是78.125Khz,这样20Mhz的带宽可以划分为如下图所示的不同RU大小。 按照11ax规范的要求,上下行的数据传输都可以由AP来统一调度,这样上下行的OFDM...

weixin_43408952的博客 1万+

MySQL导入导出、视图、索引、执行计划

目录一、导入导出二、视图三、索引四、执行计划右键选择运行SQL文件选择sql文件所在的路径 然后等待就OK了 注:在MySQL的安装bin目录下使用命令的形式 命令:mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql(这个名字随便叫)然后我们即可发现导出的sql文件再bin目录下 ,命名为0706.sql 首先连接数据库 1) 视图是一种虚拟的表,是从数据库中一个或多个表中导出来的表。 2)

weixin_66110079的博客 776

Dify-前端本地运行-单点登录

本文介绍了如何在已部署Dify的系统中实现AI应用跳转及页面定制化改造。通过iframe跳转无法满足甲方需求后,作者对Dify前端源码进行了本地化二次开发,主要步骤包括:1) 按照官方文档搭建本地开发环境;2) 修改.env配置文件连接部署好的后端服务;3) 隐藏侧边栏和头部导航栏;4) 实现单点登录功能,通过URL参数获取用户邮箱自动登录。过程中解决了请求拦截导致的登录校验问题,最终达成仅保留对话框界面并同步用户信息的需求。该方案涉及Next.js框架和React技术的应用,为类似定制化需求提供了参

weixin_43163457的博客 3227

MySQL备份和恢复(mysqldump)、索引(index)、视图(view)

学生表:Student (Sno, Sname, Ssex , Sage, Sdept)学生选课表:SC (Sno, Cno, Score)课程表:Course (Cno, Cname,)学号,姓名,性别,年龄,所在系 Sno为主键。学号,课程号,成绩 Sno,Cno为主键。课程号,课程名 Cno为主键。

m0_58784959的博客 1302

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)

文章目录6.1 常用控件6.1.1 单选按钮(RadioButton)6.1.2 复选框(CheckBox)6.1.3 框架1. 面板控件Panel2. 分组框GroupBox3. TabControl控件6.1.4 应用实例6. 2 列表框和组合框6.2.1 列表框(ListBox)6.2.2 组合框(ComboBox )6.2.3 应用实例6.3 用户交互界面6.3.1 滚动条和进度条6.3.2 定时器6.3.3 菜单设计菜单设计概述MenuStrip和ContextMenuSt

智慧空间实验室 2921

【推荐100个unity插件】基于节点的程序化无限地图生成器 —— MapMagic 2

MapMagic 2是一款基于节点的程序化地形生成工具,可快速创建无限地图。主要功能包括:通过图形化节点编辑器构建地形逻辑;支持四个核心模块(对象、样条线、生物群落和笔刷);提供完整的操作指南,包括创建资产、使用编辑器窗口、节点操作等。工具具有直观的UI界面,支持节点连接、参数调整、图层管理等功能,并能实时生成地形。适合游戏开发者快速构建高质量的可玩地形环境。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3125

MySQL之导入导出&视图&索引&执行计划

数据的导入导出的三种方式1.使用工具,类似sqlyog.Navicat等导入导出delete与truncate 的区别使用mysqldump导入导出(以命令的形式)导出表数据和表结构只导出表结构3.LOAD DATA INFILE,视图1.什么是视图2.视图的作用3.基本语法,三、索引1、什么是索引2、索引的优缺点3、索引分类4、创建索引5.修改索引6.删除索引四、执行计划-Explain,MySql中sql的执行过程图,查询缓存图查询优化图,1.什么是执行计划?2.执行计划的作用:......

oyang的博客 2259

uniapp微信小程序 - 解决输入框input软键盘弹起时页面整体上移问题,页面上推导致顶部出现元素遮挡问题,uniapp软键盘导致页面上移头部内容被错位遮住错乱,让页面头固定在顶部不动不会受影响!

解决uni-app微信小程序底部input输入框,键盘弹起时页面整体上移问题,当键盘弹起时,会导致页面整体上移,页面头固定在顶部不动,微信小程序键盘弹起时,底部输入框抬起至键盘上方,顶部导航栏固定不动,uni-app输入框,输入框在底部;当弹出键盘时,页面整体上移,页面头信息会消失不见,小程序底部input输入框,input组件弹起系统键盘时,键盘会顶住页面导致页面会上移,当键盘弹起时整个页面被挤压,导致元素上移或被覆盖,输入框能自动抬起至键盘上方,顶部导航栏保持固定,不被顶上去,如何解决这个问题,动态高度

✅ 精选推荐文章 1万+

【详解】mysqldump参数详细说明

如果你正在寻找一个实际的代码示例,而不是mysqldump的参数说明,你可以提供更多的上下文信息,比如你正在使用哪种编程语言,或者你想要实现的具体任务,这样我可以为你提供相应的代码示例。​ 是一个强大的工具,用于从 MySQL 数据库中导出数据。这将为你提供mysqldump命令的所有可用选项和参数的列表,以及它们的描述。​ 是可选的表名称列表。​ 的一些常用参数,以及它们的用途。​ 将会导出整个数据库中的所有表。​ 是可选的参数,​。​ 是数据库名称,​。下面是一些常用的 ​。下面是一个简单的 ​。

牛肉胡辣汤 1252

全新RT-DETR 有效涨点改进目录 | 包含各种卷积、主干改进、各种注意力机制、Neck特征融合改进、损失函数、AIFI创新改进、独家创新、小目标检测、特殊场景检测等最全大论文及小论文必备创新改进点

《全新最全RT-DETR涨点改进专栏》提供500+种创新改进方案,涵盖卷积、注意力机制、主干网络等模块优化,适用于PCB检测、工业缺陷检测等场景。专栏包含顶会论文改进点、数据集增强方法、热力图可视化等实用功能,帮助科研人员快速提升模型性能。提供完整环境配置指南(Python3.10+Pytorch2.5.1)和训练教程,支持不同版本RT-DETR模型。定期更新涨点策略,配套QQ答疑群免费指导,适合从入门到发论文全流程需求,特别推荐给目标检测领域的研究生和工程师。

Ai缝合怪、助力小伙伴高效发论文 3424

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

MySQL 入门实战:从安装建表到 SQL 索引优化

关系型数据库是现代应用开发的核心基础设施,而结构化查询语言则是与数据交互的通用语言。理解数据库工作的基本原理,掌握建库建表、增删改查、条件过滤与聚合分组等操作,是每一个开发者构建数据驱动应用的前提。在实际工程中,数据查询效率与数据一致性尤为关键,这便涉及到索引机制与事务处理的应用价值。合理的索引能显著提升查询响应速度,而事务则保障了业务在复杂操作下的可靠性与持久性。从 Web 应用的后端存储,到数据分析、报表统计,掌握这些核心技术都能帮助工程师高效地解决数据管理问题,并为后续深层次的性能调优打下坚实基础。本

weixin_33928137的博客 341

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

MySQL5.6使用mysqldump数据备份

MySQL5.6使用mysqldump进行逻辑备份的关键点:通过SQL协议导出表结构和数据为可执行语句,支持InnoDB表的一致性快照备份(--single-transaction)。备份脚本需包含关键参数:--routines导出存储过程、--hex-blob处理二进制数据、--master-data记录binlog位置等。备份流程包含自动清理旧备份、日志记录等功能,通过配置文件管理账号密码。恢复时需注意GTID设置(--set-gtid-purged=OFF)、外键检查关闭等事项,并验证数据完整性。

Noleaf的博客 1081

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

MySQL数据库逻辑备份实战:mysqldump原理、参数详解与生产级备份策略

数据库备份是数据安全与业务连续性的基石,其核心在于确保数据的一致性与可恢复性。逻辑备份通过生成可读的SQL语句集,实现了数据的结构化导出,具备跨平台、粒度可控和便于审计等技术价值。在MySQL生态中,mysqldump作为官方原生工具,凭借其轻量、灵活及与内核深度集成的特性,成为实施逻辑备份的首选方案。它通过建立事务一致性视图(如结合--single-transaction参数),保障了备份过程中的数据完整性,尤其适用于数据量适中、需频繁进行部分恢复或跨版本迁移的场景。本文聚焦于mysqldump的实战应用

weixin_34208283的博客 483

MySQL数据库备份实战:使用mysqldump导出数据库文件

MySQL数据库备份实战:使用mysqldump导出数据库文件 【免费下载链接】til :memo: Today I Learned 项目地址: https://gitcode.com/gh_mirrors/ti/til ...

gitblog_00591的博客 500

数据库索引设计三准则:数据库、查询、列层级决策树

索引是关系型数据库性能优化的核心机制,其本质是在读写性能、存储开销与维护成本之间做动态权衡。理解B+树索引原理是基础,但真正决定效果的是面向业务场景的设计方法论:先评估数据库整体负载(表大小、更新频率、索引占比),再匹配具体SQL的执行路径(覆盖索引、联合索引顺序、批量操作适配),最后落实到列级物理约束(数据类型限制、最左前缀原则、选择率阈值)。脱离这三层递进逻辑的索引建设,极易导致‘越优化越慢’。本文聚焦MySQL实战,结合orders等真实业务表,详解如何用最少索引达成最大性能增益。

diaojin6880的博客 451

MySQL实战入门:从建表到排错的四步避坑指南

数据库本质是解决数据存储、查询、并发与可靠性问题的工程系统,其核心价值在于支撑业务稳定运行。理解索引原理、字符集配置、事务锁机制和备份恢复策略,是保障系统可用性的技术基石。MySQL作为中小项目首选,凭借InnoDB引擎的ACID支持、B+树索引成熟度及丰富生态,成为掌握数据库底层逻辑的最佳教学模型。本文聚焦真实场景中的建表规范、复合索引设计、utf8mb4字符集适配与生产级RDS配置,覆盖电商订单管理等高频需求,帮助开发者快速建立‘问题驱动’的数据库工程思维。

weixin_30411239的博客 444

MySQL数据库备份与恢复实战:从mysqldump到XtraBackup的完整指南

数据库备份是数据安全与业务连续性的基石,其核心原理在于通过定期或实时复制数据副本来防范数据丢失风险。从技术价值看,有效的备份策略能实现灾难恢复、满足合规要求,并为系统迁移、版本回滚等场景提供支持。在应用层面,针对不同规模与需求的业务场景,需灵活选用逻辑备份或物理备份方案。本文聚焦MySQL数据库,深入解析mysqldump、mydumper、Percona XtraBackup等主流工具的实现机制与适用场景,并涵盖备份策略设计、恢复演练等工程实践要点,帮助构建从“能用”到“可靠”的数据保护体系。

weixin_33767813的博客 457

MySQL零基础入门指南:从建库建表到索引优化与SQL注入防御

在数据驱动的开发时代,关系型数据库是后端技术的基石。对于零基础学习者,理解数据库、SQL与MySQL的关系是第一步:SQL作为标准查询语言,通过MySQL这类数据库管理系统,操作结构化数据。本文从最基础的建库建表、增删改查等CRUD操作讲起,逐步深入到条件查询、排序分组、多表关联、事务ACID特性及索引加速原理,并涵盖慢查询日志分析与SQL优化思路,同时强调SQL注入的危害与参数化查询的防御方法。全文以工程实践为导向,帮助初学者快速建立MySQL核心知识框架,覆盖日常开发80%以上高频场景,为后续学习事务隔

weixin_30616969的博客 355

MySQL备份恢复实战:从mysqldump到XtraBackup的可靠数据保护方案

数据库备份与恢复是数据保护的核心技术,其本质在于通过特定机制创建数据副本,确保在系统故障或人为误操作时能够快速恢复业务。从技术原理看,逻辑备份通过执行SQL查询提取数据,而物理备份则直接复制数据文件,两者在一致性保证、性能影响和恢复效率上各有侧重。在工程实践中,有效的备份方案必须兼顾RPO(恢复点目标)与RTO(恢复时间目标),通过全量备份、增量备份与二进制日志归档的组合策略实现精细化的数据保护。针对MySQL数据库,mysqldump作为经典逻辑备份工具,其--single-transaction参数通过

weixin_34290096的博客 384
上一篇: A new parameter to control updating statistics strategy
下一篇: 一个简单的patch--MySQL禁止新连接
iteye_621
博客等级 码龄8年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值