`

Mysql大量插入数据时SQL语句的优化

 
阅读更多
1) 对于Myisam类型的表,可以通过以下方式快速的导入大量的数据。
    ALTER TABLE tblname DISABLE KEYS;
    loading the data
    ALTER TABLE tblname ENABLE KEYS;
这两个命令用来打开或者关闭Myisam表非唯一索引的更新。在导入大量的数据到一个非空的Myisam表时,通过设置这两个命令,可以提高导入的效率。对于导入大量数据到一个空的Myisam表,默认就是先导入数据然后才创建索引的,所以不用进行设置。

而对于Innodb类型的表,这种方式并不能提高导入数据的效率。

2) 对于Innodb类型的表,我们有以下几种方式可以提高导入的效率:
因为Innodb类型的表是按照主键的顺序保存的,所以将导入的数据按照主键的顺序排列,可以有效的提高导入数据的效率。如果Innodb表没有主键,那么系统会默认创建一个内部列作为主键,所以如果可以给表创建一个主键,将可以利用这个优势提高导入数据的效率。
在导入数据前执行SET UNIQUE_CHECKS=0,关闭唯一性校验,在导入结束后执行SET UNIQUE_CHECKS=1,恢复唯一性校验,可以提高导入的效率。
如果应用使用自动提交的方式,建议在导入前执行SET AUTOCOMMIT=0,关闭自动提交,导入结束后再执行SET AUTOCOMMIT=1,打开自动提交,也可以提高导入的效率。
分享到:
评论

相关推荐

    PB 从SQL语句获取数据存储(MySQL)

    标题 "PB 从SQL语句获取数据存储(MySQL)" 指的是使用PowerBuilder (PB) 开发工具,通过SQL语句从MySQL数据库中检索和处理数据存储的过程。在这个Demo中,PB11.5 版本被用作开发环境,而MySQL作为后台数据库系统。...

    MySQL SQL语句练习题及答案

    MySQL SQL语句练习题及答案 本资源提供了 MySQL SQL 语句的练习题及答案,涵盖了创建表、插入数据、删除数据、更新数据、查询数据等多方面的知识点。 一、创建表 在 MySQL 中,创建表使用 CREATE TABLE 语句。...

    最新整理的常用sql语句及优化大全

    5. **使用`EXPLAIN`分析查询**:`EXPLAIN`可以显示MySQL如何执行SQL语句,帮助理解并优化查询计划。 6. **批量插入**:一次性插入大量数据比单条插入更高效。 7. **存储过程和预编译语句**:它们可以减少网络传输...

    sql语句插入MySQL数据库操作指南

    本文将深入探讨如何使用SQL语句将数据插入到MySQL数据库中,以及如何在开发者之间共享和同步数据库结构。 首先,我们需要理解SQL(Structured Query Language),它是用于管理和处理关系数据库的标准语言。插入数据...

    MySQL mysql_query 函数执行SQL语句.docx

    * 对于没有数据返回结果集的 SQL 语句,如 UPDATE、DELETE 等,在执行成功时返回 TRUE,出错时返回 FALSE * 对于 SELECT、SHOW、EXPLAIN 或 DESCRIBE 语句,返回一个资源标识符,如果查询执行不正确则返回 FALSE ...

    Python语句实现Mysql多条插入语句

    本代码,用python语句,实现了一次插入多条sql语句。希望能对大家带来帮助。

    省市区插入mysql的sql语句

    省市区插入mysql的sql语句,直接执行,插入全国的省市区数据。

    Mysql常用SQL语句

    MySQL常用SQL语句 MySQL是一种关系型数据库管理系统,使用SQL(Structured Query Language)语言来管理和操作数据库。下面是MySQL中一些常用的SQL语句: 创建、删除和基本查询 * 显示数据库:`show databases;` *...

    数据库表数据转为insert sql语句

    Data row to insert sql是一个小的工具软件,可以将数据库表中指定数据转换成相应的insert sql语句。目前支持的数据库类型为oracle,db2,ms sql server。 目前还有一些缺陷,还有待完善,具体如下: 1、对ms sql ...

    sql语句、动态SQL语句基本语法

    在数据库管理系统(如MySQL、Oracle、SQL Server等)中,SQL语句是不可或缺的一部分。 1. SQL基础语法 SQL的基础语法包括SELECT、INSERT、UPDATE、DELETE四大语句,它们分别用于查询、插入、更新和删除数据。 - ...

    MySQL分表及分表后插入sql

    MySQL分表及分表后插入sql语句,表为订单表,可以参考一下

    C#在MySQL大量数据下的高效读取、写入详解

    本文将探讨如何高效地读取和写入大量数据,主要分为三个步骤:解决读取问题、数据处理和数据插入。 ### 第一步:解决读取问题 1. **避免使用重型ORM框架**:如Entity Framework和NHibernate,这些框架在处理大数据...

    Delphi把数据库数据转换成SQL插入语句.rar

    综上所述,这个Delphi项目提供了一个实用的工具,用于数据库数据的SQL转换,对于数据库管理员和开发者来说,这在处理大量数据转移时可以大大提高效率。通过深入理解和修改这个源码,用户可以进一步定制它以适应更...

    Php实现把json生成mysql表结构和插入sql语句2

    Php实现把json生成mysql表结构和插入sql语句2

    MySQL常用sql语句生成器

    下面将详细介绍MySQL中的SQL语句及其生成器的相关知识。 1. SQL基础概念 SQL,全称为结构化查询语言,是用于创建、查询、更新和删除数据库中数据的标准语言。它分为DQL(查询语言)、DML(数据操纵语言)、DDL...

    MySQL批量SQL插入各种性能优化.docx

    MySQL数据库在处理大量数据插入时,性能优化是至关重要的,尤其是在报表系统等需要频繁批量插入数据的应用场景。以下是一些针对MySQL批量SQL插入的性能优化策略: 1. **批量插入数据** - 传统的做法是逐条插入数据...

    mysql和oracle和sql语句

    在文件名中提到的"oracle常用sql语句.txt"可能包含Oracle的一些常见操作,如`SELECT`用于查询,`INSERT INTO`用于插入数据,`UPDATE`用于修改记录,`DELETE FROM`用于删除记录,以及`ALTER TABLE`用于修改表结构等。...

    SQL Server转换为MySQL工具

    2. 数据迁移:工具会逐条读取SQL Server中的记录,根据字段映射规则将其转换为符合MySQL数据类型的格式,然后插入到对应的MySQL表中。这一步骤需要注意数据类型不兼容的问题,例如,SQL Server的datetime与MySQL的...

    利用SQL语句插入批量数据.rar

    当我们需要大量数据一次性地插入到数据库表中时,手动一条条执行INSERT语句显然是效率极低的。此时,我们可以利用SQL语句来实现批量数据的插入,以提高工作效率。下面将详细讲解如何使用SQL语句进行批量数据的插入。...

Global site tag (gtag.js) - Google Analytics