当前位置: 首页 > news >正文

Mysql insert 语句

insert into table values(a, b, c)是非常轻量的。但是某些复杂语句可能很慢。

insert … select

如果是可重复读隔离条件,且 binlog 格式为 statement,那么insert new table(c1, c2) select c1, c2 from old_table;语句会为old_table所查询的数据加临键锁。原因是:如果不加锁,可能出现当前主机事务a 比事务 b 先执行,但是后写入 binlog,到了从节点上,事务 b 比 a 先执行。

如果old_tablenew_table是同一张表,要注意可能出现全表扫描,全表扫描意味着全表加锁。检查慢查询日志的rows_examined,是否符合手算预期。

唯一键冲突

如果某个 insert 语句出现唯一键冲突,事务会对于冲突索引加临键读锁。读锁与写锁冲突。典型场景:三个线程对同一个事务同一行加读锁,其中一个事务回滚,另外两个事务尝试获取写锁,则互相等待对方释放读锁。产生死锁。

insert into on duplicate key update …

插入一行数据,如果遇到唯一键冲突,则执行更新语句。如果有多个唯一键列都冲突,则修改第一冲突的数据行。

复制表

insert … select 语句可以复制表,但是会对原表加锁。更合理的方法是:将数据写入外部文件,再将外部文件导入新表。
一种方法是 mysqldup 命令导出原表为xx.sql文本文件。文件内容类似insert into new_table values (1,1,1), (2,2,2), ..., (100,100,100);。执行 source xxx.sql,相当于 Mysql 实例执行文本中 insert 语句,从而导入数据。

另一种方法是 into outfile 子句导出为 csv 文件。再用 load data 命令导入数据。csv 文件在服务器,不在客户端。为了在从库执行命令。主库将 csv 文件内容整体写入 binlog,从句从 binlog 中将 csv 文件复原成临时文件,再用 load data local 命令解析。into outfile 本身不存储表结构,因此需要配合 mysqldump 命令生成表结构。

以上都是逻辑拷贝,可以跨引擎,速度慢。第三种方法物理拷贝更快,但是不可跨引擎。Mysql5.6 提供一种方法:可传输表空间。将旧表的磁盘文件复制到新表。速度快,适合大表。

http://www.dtcms.com/a/311798.html

相关文章:

  • 入门MicroPython+ESP32:开启科技新旅程
  • 机试备考笔记 2/31
  • FastAPI--一个快速的 Python Web
  • C++ 自定义简单的异步日志类
  • oect刷入arm系统安装docker
  • Python深度学习:从入门到精通
  • retro-go 1.45 编译及显示中文
  • 联合索引全解析:一棵树,撑起查询的半边天
  • 【01】OpenCV C#——C#开发环境OpenCvSharp 环境配置 工程搭建 及代码测试
  • 【QT】Qt信号与槽机制详解信号和槽的本质自定义信号和槽带参数的信号和槽
  • 计算机网络:为什么IPv6没有选择使用点分十进制
  • 数据结构初学习、单向链表
  • Python 字典为什么查询高效
  • 数据结构---概念、数据与数据之间的关系(逻辑结构、物理结构)、基本功能、数据结构内容、单向链表(该奶奶、对象、应用)
  • SpringBoot3.x入门到精通系列:2.2 依赖注入与IoC容器
  • Spring AI MCP 服务端
  • 边缘智能网关在水务行业中的应用—龙兴物联
  • 沿街晾晒识别准确率↑32%:陌讯多模态融合算法实战解析
  • P2415 集合求和
  • Docker 镜像打包为 ZIP 文件便于分享和转发
  • linux ext4缩容home,扩容根目录
  • 【Kubernetes】Secret配置管理,安全管理敏感配置
  • Effective C++ 条款17:以独立语句将newed对象置入智能指针
  • Python 程序设计讲义(50):Python 的可迭代对象与迭代器
  • Flutter基础知识
  • SpringBoot与TurboGears2跨栈、整合AI服务、智能客服路由系统整合实战
  • SpringCloud学习第一季-4
  • 第15届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2024年3月10日真题
  • 17、原坐标变换和逆变换在实战中用法
  • 无人机数字图传技术的前沿探索与应用