`
Lucius-Yu
  • 浏览: 5155 次
  • 性别: Icon_minigender_1
  • 来自: 南通
最近访客 更多访客>>
社区版块
存档分类
最新评论

mysql 性能优化(数据导入)

阅读更多
mysql数据导入性能优化(代码级别)
1. 使用preparedStatment
2. 使用批量处理,一次提交
3. mysql 批量插入数据添加参数rewriteBatchedStatements时,性能比不添加时要最高可提高10倍以上的速度。URL如下:
jdbc:mysql://%IP%:3306/%SID%?rewriteBatchedStatements=true
4. 使用load data infile
   a) 使用load data infile SQL如下:
LOAD DATA LOCAL INFILE 'file/loader_data_file' INTO TABLE test_key_value CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' (`key`,`value`);
    1. (`key`,`value`) 为导入指定字段,若不写,默认全部导入。
     2. TERMINATED BY '\r\n', 在这里要注意最后一个字段的值是否正确,有时候最后field value 是'/r',有时候会出现只能插入一行值。
   b) NULL和“NULL”的插入
        在导入语句中 使用 ENCLOSED BY '\"', 此时若文件中有NULL值,则插入数据库是NULL对象,若文件中的值是“NULL”, 则,插入数据库中的值是NULL字符串
    c) 一般情况下field值在文件中使用英文逗号分割,对应sql中是 FIELDS TERMINATED BY ','
   d) 设置字符编码格式: CHARACTER SET utf8 注意此处是utf8 而不是UTF-8,
data file demo:
1,key1,value1
2,key2,value2
3,key3,value3
4,key4,value4


Load data infile Demo:
  1. create table:
 
CREATE TABLE `test_key_value` (
  `id` bigint(20) NOT NULL,
  `key` varchar(32) DEFAULT NULL,
  `value` varchar(128) DEFAULT NULL
  PRIMARY KEY (`id`)
  ) ENGINE=InnoDB;

2. src:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class TestJDBCTemp {

	public static void main(String[] args) throws Exception {
		generateData();
		test_mysql_load_data_infile();
	}

	public static void test_mysql_load_data_infile() {
		String url = "jdbc:mysql://10.46.24.93:3306/GHS_RULE_LUCIYU?rewriteBatchedStatements=true";
		String userName = "ghs";
		String password = "acxiom";
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection(url, userName, password);
			conn.setAutoCommit(false);
			String sql = "LOAD DATA LOCAL INFILE 'file/loader_data_file' INTO TABLE test_key_value FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n'";
			PreparedStatement prest = conn.prepareStatement(sql);
			prest.execute();
			conn.commit();
		} catch (Exception ex) {
			ex.printStackTrace();
		} finally {
			try {
				if (conn != null)
					conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	public static void generateData() throws Exception {
		File file1 = new File("file/loader_data_file");
		BufferedWriter writer1 = new BufferedWriter(new OutputStreamWriter(
				new FileOutputStream(file1), "UTF-8"));
		for (int i = 1; i < 5; i++) {
			writer1.append(i + "");
			writer1.append(",key" + i);
			writer1.append(",value" + i);
			writer1.newLine();
		}
		writer1.flush();
		writer1.close();
	}
}
分享到:
评论

相关推荐

    python工具-excel批量导入mysql (几千万数据半小时可搞定)

    5. **利用存储过程**:在数据库端编写存储过程,执行数据导入,利用数据库本身的优化机制。 通过以上步骤和优化策略,即使面对几千万条数据,也能在较短的时间内完成导入。在本例中,提供的`excelImport.py`脚本...

    mysql性能优化

    MySQL性能优化是一个重要的主题,尤其是对于处理大量数据的Web应用程序来说。优化数据库性能不仅可以提高系统响应速度,还能提升用户体验。以下是一些关键的优化策略和技巧: 首先,了解SQL语句的执行情况至关重要...

    mysql 省份城市 sql导入

    6. **优化性能**:在大量数据导入后,可能需要对表进行优化,如重建索引、分析统计信息等,以提高查询性能: ```sql ANALYZE TABLE provinces, cities; OPTIMIZE TABLE provinces, cities; ``` 以上就是关于...

    datax数据从hive导入mysql数据缺失解决

    3. **性能监控**:持续监控数据导入过程中的性能指标,确保调整后的参数没有引入新的瓶颈。 #### 技术细节解析 DataX 在读取 Hive 中的数据时,实际上是按照 HDFS 文件中的行进行读取的。默认情况下,DataX 处理的...

    一堂课带你精通~MySql性能优化实战

    ### MySQL性能优化实战知识点详解 #### 一、MySQL性能优化的重要性及背景 在现代软件开发领域,数据库作为数据存储的核心组件之一,其性能直接影响到整个应用系统的响应速度和用户体验。MySQL作为一款广泛使用的...

    mysql介绍和性能优化.rar

    本教程将深入探讨MySQL的基本概念、安装配置、操作语法以及性能优化策略。 一、MySQL基本概念 1. 数据库:存储数据的容器,可以包含多个表。 2. 表:数据的二维结构,由列和行组成。 3. 列:定义表中的字段,每个...

    sql server数据导入mysql方案

    【SQL Server数据导入MySQL方案】 数据迁移是数据库管理和运维中的常见任务,特别是在系统升级或整合时。本方案主要探讨如何将SQL Server中的数据迁移到MySQL,涵盖了多种迁移工具和技术,包括Kettle、SqlYong、...

    MySql数据导入SqlServer

    【MySQL数据导入SQL Server详解】 在数据库管理领域,经常需要将数据从一个系统迁移到另一个系统,例如从MySQL数据库迁移到SQL Server。这个过程通常涉及到数据的导出、转换和导入等多个步骤。以下是一个详细的过程...

    linux上mysql安装以及数据的导入导出操作.docx

    总结来说,Linux上安装MySQL涉及用户创建、安装配置、启动服务、权限设置和优化,而数据的导入导出则涉及到`mysqldump`和`mysql`命令的使用。这些操作是数据库管理的基础,熟练掌握将有助于提升数据库管理效率。

    mysql里excel数据导入方法.rar

    - **性能优化**:大量数据导入时,考虑分批导入,以减少内存占用和提高效率。 教育领域中,这种技能对于数据科学、数据分析、数据库管理课程的学生和教师来说尤其重要。掌握Excel到MySQL的数据导入方法,能够帮助...

    PHP实现的excel数据导入到MySQL数据库的程序包

    3. MySQL数据库操作:建立数据库连接,编写SQL语句进行数据导入。 4. 性能优化:分批处理数据,避免一次性加载过多数据导致内存溢出。 5. 错误处理:通过异常处理机制,确保程序在遇到问题时能正常运行。 掌握这些...

    mysql5.6性能优化-Oracle公司

    MySQL性能优化是数据库管理员、开发人员和系统架构师在使用MySQL数据库时关注的重要领域,特别是在需要保证服务的高效能、高可靠性和易用性的应用中。Oracle公司作为一家在数据库技术和市场领域具有深厚积累的公司,...

    数据导入程序(测试用的MySql,其他数据库未测试)

    针对“数据导入程序(测试用的MySql,其他数据库未测试)”这个标题,我们可以了解到这个程序主要用于导入数据到MySQL数据库,但未经过其他类型数据库的测试。这意味着它可能专门优化了对MySQL数据库的支持,而在兼容...

    mysql数据导入到Oracle中

    标题"mysql数据导入到Oracle中"指出,我们的目标是从MySQL数据库中提取数据并将其导入到Oracle数据库。这通常是因为业务需求的变化,比如性能优化、合规性要求或者是为了利用Oracle特有的功能。迁移过程可以涉及结构...

    C#实现excel文档中数据导入(mysql、sql)

    在C#编程环境中,我们可以利用各种库来处理Excel文件,并将其数据导入到数据库系统,如MySQL或SQL Server。本文将详细讲解如何实现这个过程,主要包括以下几个步骤和涉及的知识点: 1. **安装必要的库**: - 对于...

    导入导出mysql数据

    接着,通过调用 `CMDTool.executeCmd` 方法执行构建好的命令,将 SQL 文件中的数据导入到指定的数据库中。 ### CMDTool 类的实现 为了在 Java 程序中执行系统命令,`CMDTool` 类提供了 `executeCmd` 方法。这个...

    solr5.3.1 导入mysql数据

    在实际应用中,我们还需要关注性能优化、安全性、集群部署等方面。例如,可以通过调整缓存设置、使用 Sharding 或 Replication 来提高 Solr 集群的性能和可用性。此外,Solr 支持多种数据源,不仅限于 MySQL,还包括...

    php导入大量数据到mysql性能优化技巧

    以下是本篇文章所提及的知识点,也是对性能优化的详细分析和建议。 1. **理解问题所在**: 首先,文章提到了当导入大量数据时(如15000条记录),插入操作耗时过长,问题主要发生在数据库写入环节。每次的插入操作...

    excel数据导入帝国cms MySQL数据库phome_ecms_news导入excel

    本文将详细介绍如何使用Excel数据导入到帝国CMS(Empire CMS)的MySQL数据库中,特别是在`phome_ecms_news`新闻类型的表中进行操作。这个过程通常涉及到数据整理、数据格式转换以及数据库接口的使用。 首先,我们...

Global site tag (gtag.js) - Google Analytics