对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久。因此,优化数据库插入性能是很有意义的。最有效的办法是:合并+事务+有序数据 进行INSERT操作效率最快。
经过对MySQL innodb的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考。
1. 一条SQL语句插入多条数据。
常用的插入语句如:
1234 | INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content_0', 0);INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('1', 'userid_1', 'content_1', 1); |
修改成:
1 2 | INSERTINTO`insert_table`(`datetime`,`uid`,`content`,`type`) VALUES('0','userid_0','content_0',0),('1','userid_1','content_1',1); |
修改后的插入操作能够提高程序的插入效率。这里第二种SQL执行效率高的主要原因是合并后日志量(MySQL的binlog和innodb的事务让日志)减少了,降低日志刷盘的数据量和频率,从而提高效率。通过合并SQL语句,同时也能减少SQL语句解析的次数,减少网络传输的IO。
这里提供一些测试对比数据,分别是进行单条数据的导入与转化成一条SQL语句进行导入,分别测试1百、1千、1万条数据记录。
参考:http://www.2cto.com/database/201606/520871.html
相关推荐
【MySQL面试题】在面试MySQL相关的职位时,面试官可能会问到一系列关于数据库基础、SQL语法、事务处理、索引优化以及性能调优的问题。以下是一些可能的面试重点: 1. **数据库基本概念**: - 数据库是用于存储和...
+----+-------------+------------------+------+-----------------+-------+---------+------+------+---------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ...
### MySQL性能优化与SQL优化方法技巧 #### 一、引言 MySQL作为一款广泛使用的开源关系型数据库管理系统,其性能优化对于确保应用系统的稳定性和高效运行至关重要。通过对MySQL的优化,不仅能提升系统的响应速度,还...
尽管如此,我将基于标题和描述中提供的关键词“Effective MySQL之SQL语句最优化”来构建知识点。 1. SQL语句最优化的概念:在数据库管理中,对SQL语句进行优化是提高数据库性能的关键环节。最优化的SQL语句能够在...
通过对SQL查询进行合理的调整和优化,可以有效提升系统的性能和响应速度。同时,在批量导入数据时,选择合适的方法也可以大大提高数据处理的效率。在实际应用中,可以根据具体情况灵活运用这些策略,实现更好的性能...
本项目"springboot + mybatis +mysql+ sqlserver 双数据源"正是针对这种需求的一个解决方案,它利用SpringBoot框架、MyBatis持久层框架以及MySQL和SQLServer两种数据库,实现了数据源的自动切换,以满足不同业务场景...
MySQL是世界上最受欢迎的开源关系型数据库之一,尤其在处理海量数据时,其性能优化显得尤为重要。本资料"海量数据性能优化.rar"主要聚焦于如何在大数据环境下提升MySQL的运行效率和响应速度,确保系统的稳定性和可...
MySQL批量SQL插入性能优化是数据库管理员和开发人员面临的重要任务,特别是在处理大数据量的系统时。本文将深入探讨几种能够显著提升MySQL InnoDB存储引擎插入性能的方法。 首先,一种有效的优化策略是通过合并多条...
- 在事务中进行批量插入可以提升效率,因为MySQL会在每个INSERT操作时隐式开启事务。通过显式开启事务(START TRANSACTION),将多条INSERT语句放在同一个事务中,直到最后一起提交(COMMIT)。这样可以减少事务...
- **性能提升**:在这一版本中,MySQL数据库进行了大量优化,包括更快的查询速度、更高效的索引处理等。 - **安全性增强**:支持更强的身份验证协议,如caching_sha2_password,提供了更高的安全性。 - **JSON...
《Effective MySQL之SQL语句最优化》是一本深入探讨如何提升数据库性能的专业手册,它针对SQL语句的优化提供了一系列实用且高效的策略。在数据库管理领域,SQL优化是提升系统性能的关键环节,尤其是在处理大数据量时...
SQL 查询优化(提高 MySQL 数据库查询效率的几个技巧) 在 MySQL 数据库中,查询优化是一个非常重要的方面。在实际应用中,高效的查询可以提高整个系统的性能和响应速度。下面我们将介绍几个提高 MySQL 数据库查询...
MySQL是世界上最受欢迎的开源数据库系统之一,而MySQL Connector/J是MySQL官方提供的用于Java应用程序与MySQL数据库之间连接的驱动程序。本文将深入探讨这两个文件:"mysql-connector-java-5.1.40.zip" 和 "mysql-...
课程内容进行了精华的浓缩,有四大内容主旨,MySQL架构与执行流程,MySQL索引原理详解,MySQL事务原理与事务并发,MySQL性能优化总结与MySQL配置优化。课程安排的学习的教程与对应的学习课件,详细的学习笔以及课程...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,尤其在Web应用程序中被广泛应用。此资源"mysql-essential-5.1.60-winx64"包含了MySQL 5.1.60版本的64位安装程序,这是一个针对Windows 64位操作系统的精简版...
总而言之,`mysql-connector-java-5.1.47.jar`是Java应用程序与MySQL数据库之间的重要组件,它实现了JDBC标准,使得Java开发者能够方便地操作MySQL数据库,进行数据的存取和处理。在项目中正确配置和使用该驱动,...
《Effective MySQL之SQL语句最优化》提供了很多可以用于改进数据库和应用程序性能的最佳实践技巧,并对这些技巧做了详细的解释。《Effective MySQL之SQL语句最优化》希望能够通过一步步详细介绍SQL优化的方法,帮助...
+-------------+-------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) · 6、 往表中加入记录 我们先用SELECT命令来查看表中的数据: mysql> select * from mytable; Empty set (0.00 sec...
MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,其8.0.11版本为Windows 64位系统提供了强大的性能和稳定性。在这个压缩包中,包含的`libmysql.lib`和`libmysql.dll`文件是MySQL客户端库的重要组成部分,它们...
这个jar包包含了Java编程语言所需的类库,使得开发者能够通过JDBC(Java Database Connectivity)接口连接到MySQL服务器,执行SQL查询,进行数据操作和其他数据库相关的任务。以下是关于`mysql-connector-java`的...