从Excel导数据到MySQL速度优化】的更多相关文章

运行环境: Windows10 和 Deepin15.7, MySQL14.4, Java1.8.0_181使用工具: poi,JDBC数据规模: 35万条,5个文件夹,146个Excel文件(.xls,.xlsx) 一开始在win10里运行,需要3个小时,把我吓到了,当时也没多想,导完数据就做处理去了.后来到deepin里导(电脑装的双系统),同样的数据,同样的代码,只需要100秒左右,又把我吓到了,这差距咋这么大呢.虽然deepin装在固态里,但也不至于直接差了整整一百倍吧. 然后我就又回到…
有时候项目需要将存在表格中的批量数据导入数据库,最近自己正好碰到了,总结一下: 1.将excel表格另存为.csv格式文件,excel本身的.xlsx格式导入时可能会报错,为了避免不必要的格式错误,直接使用.csv格式. 2.使用notepad++编辑工具,打开.csv文件,将字符编码格式改为utf-8(不修改的话导入数据库后,中文会出现乱码)保存. notepad++打开文件--编码--转为UTF-8编码格式--保存 3.按照excel数据格式新建数据库表,匹配字段(或者根据数据库要求的表格字…
这个demo是有一个Excel中的数据,我需要读取其中的数据然后导入到关系型数据库中,但是为了向数据库中插入更多的数据,循环N次Excel中的结果. 关于JDBC的批处理还可以参考我总结的如下博文: http://www.cnblogs.com/DreamDrive/p/5757693.html 此外用到了读取Excel文件的jxl.jar包 下载地址:http://files.cnblogs.com/files/DreamDrive/jxl.rar 附代码: import java.io.Fi…
这是我来公司的第二周的一个小学习任务,下面是实现过程: 1.建立maven工程(方便管理jar包) 在pom.xml导入 jxl,mysql-connector 依赖 可以在maven仓库搜索 2.建立数据库连接类,数据库对应实体类 2.编写数据库表对应的实体类 ,get.set方法等 3.下面是编写读取excel文件的类 ,和运行主类 package service; import java.io.File; import java.sql.ResultSet; import java.sql…
由于数据量太大,加载树时间很长,所以进行了优化 前台 .aspx <asp:Panel ID="Panel2" runat="server" Height="600px" ScrollBars="Auto"> <asp:TreeView ID="TreeView1" runat="server" ForeColor="Black" OnTreeNod…
*.xls   2003的excel有行数限制,65535行好像,所以数据库行数多的时候,选择导出为*.xlsx文件 要装一下Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎),Microsoft.Jet.OLEDB.4.0   Jet 引擎用于 Office 97-2003,但不能用于 Office 2007. Excel 12.0                 xls是4.0的数值,xlsx的要12以后的数值了. 导出数据的代码 insert into OPENRO…
数据导出已经有了,怎么能没有数据导入呢,同样使用TP5框架,首先需要下载phpexcel.zip,放到第三方类库目录vendor目录下,然后有一个页面可以让你选择要导入的Excel文件,然后点击导入按钮调用接口: 我的模板内的数据如下图: 后端接口代码如下: public function uplExcel(Request $request) { if (!empty($_FILES['excel']['name'])) { $fileName = $_FILES['excel']['name'…
/*批量上传数据*/ if(isset($_POST['submit']) && $_POST['submit']=='上传文件') { //导入类文件 require_once ("../Classes/PHPExcel.php"); require_once ("../Classes/PHPExcel/IOFactory.php"); //判断是否未选中文件 if($_FILES['file']['size']==0) { echo "…
1.使用Navicat 连接需要导入的数据库. 2.excel 列的名字最好和数据库的名字一致,便于我们直观的查看好理解.   第一步,先创建好表,和准备好对应的excel文件.在Navicat 中选中表右键.   第二步,在导入向导中选择excel文件类型.   第三步,选择要导入的excel文件,以及要导入的是excel中的哪一个sheet.   第四步,设置栏目名称是哪一行,以及数据是从哪一行导入的.   第五步,确认导入信息.   第六步,选择导入模式.   第七步,点击开始,进行导入,…
第一步:先将Excel文件另存为文本文件(制表符分割) 第二步:将生成的txt文件另存,并修改编码格式utf8; 第三步:将文件放到指定位置,或自己想要的位置: G:\city.txt 第四步:避免创建数据库及表出现中文乱码和查看编码方法: 1.创建数据库的时候:CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 查询字符编码: show variables like'character%'; 将数据库修改…
1.添加索引 ALTER TABLE `cw_base_house` ADD INDEX idx_house ( `villageCode`, `buildingNo`, `unitNo`, `houseNo` ) USING BTREE; 2.左右连接 左连接,左边放小表(数据少),左边和右边比较. 但需谨慎数据丢失. 3.order by后速度变慢 强制索引 FORCE INDEX(idx_bo_order_book_local) FORCE INDEX(索引) select t.order…
在开发PHP程序时,很多时候我们会有将数据批量导入数据库的需求,如学生信息批量添加到数据库中,而事先用excel编排好,对excel实行操作,便是我们比较常用的选择方式. 在对excel的操作中,phpExcelReade便是很多人的共同选择.在具体实现中,我们可以以文件上传方式将excel文件上传到服务器中的某个位置,通过以下操作将excel中的数据导入到数据库后,在将上传的文件删除即可. 代码如下: $dir=dirname(__FILE__); //获取当前脚本的绝对路径 $dir=str…
参考: ="insert tsilverinfo(ss_id,memo,ss_weight,ts_id,ss_type,ModelPosX,ss_stoneW,ss_stoneWU) values('"&B3&"','"&C3&"',"&J3&",'"&A3&"',5 ,'"&K3&"',"&H 3&…
遇到的几个坑,记录一下. 隐藏表,隐藏行,隐藏列, 单元格合并 => 拆分并填充内容, 显示隐藏列,结果那个列 还是不显示出来,拖动旁边的列也不显示. 结果在旁边的列上,按左右箭头键就出来了,也是郁闷,还是Excel不熟呀.…
导入: load data local infile 'D:\\top-1m.csv'    (注意要加上local)10.21.into table `site` fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\n'; 导出: select * from `site` into local outfile 'D:\\top-1m.csv' fields t…
背景 使用sqoop从mysql导数据到hive,从本地服务器是可以访问mysql的(本地服务器是hadoop集群的一个datanode),但是sqoop导数据的时候依然连接不上mysql 报错如下: 从报错可以看出,是数据库连接失败,很常见的问题,但是从本地是可以直连mysql的. 因为sqoop导数据的时候,默认会启动4个map task,这4个map task会随机启动在不动的datanode上,所以在想,是不是因为其他节点没有权限访问mysql导致. 但是需要先搞清楚,sqoop在抽取数…
Mysql数据库写入数据速度优化 1)innodb_flush_log_at_trx_commit 默认值为1:设置为0,可以提高写入速度.  值为0:提升写入速度,但是安全方面较差,mysql服务器宕机可能会造成数据丢失. 值为1:每一次事务提交或者事务外的指令都需要把日志写入硬盘,此过程消耗时间较长: 值为2:是每次操作不写入硬盘,而是写入系统缓存,日志仍然会每秒刷新硬盘: 2)innodb_autoextend_increment默认值为8M,调整为128M : 此配置项作用主要是当tab…
提高MYSQL百万条数据的查询速度 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 3.应尽量避免在 where 子句中…
最近要开发一个小的答题系统,如果题目人工录入那确实很麻烦.所以想到是不是可以从用一些现有数据格式的文件导入数据.在网上查了一下,看到有关于将excel的数据导入到mysql的方法.所以将题库数据整理成excel的.  然后另存为.csv格式的文件.  然后在phpmyadmin中选择导入操作. 但是由于插入的数据出现乱码,失败.  查找原因:因为excel默认编码格式为ANSI,而mysql数据库默认的编码方式是utf-8. 解决办法:我是用editplus将.csv格式的文件打开(打开时将“编…
   修改kettleDB连接设置 1. 增加批量写的速度:useServerPrepStmts=false  rewriteBatchedStatements=true  useCompression=true2. 增加读的速度:useServerPrepStmts=truecachePrepStmts=true 参数说明: 1)useCompression=true,压缩数据传输,优化客户端和MySQL服务器之间的通信性能. 2)rewriteBatchedStatements=true …
MySQL性能优化--优化数据库结构之优化数据大小   By:授客  QQ:1033553122 尽量减少表占用的磁盘空间.通常,执行查询期间处理表数据时,小表占用更少的内存. 表列 l   尽可能使用最效率(最小)的数据类型.比如,使用更小的整型以便于获取更小的表.相比INT,MEDIUMINT 通常是个更好的选择,因为MEDIUMINT列少使用25%的空间. l   尽可能的定义列为NOT NULL,这有利于更好的使用索引,可以让sql操作更快. 行格式 l   MySQL 5.7.8及以前…
公司的需求,当前某个Excel导入功能,流程是:读取Excel数据,传入后台校验每一条数据,判断是否符合导入要求,返回给前端,导入预览展示.(前端等待响应,难点).用户再点击导入按钮,进行异步导入(前端不等待,好做).当前接口仅支持300条数据,现在要求我要支持3000条数据. 解决问题,思路是关键. 首先,查看接口,找到读取表格的位置,看到判断,如果数据量大于300,直接返回.把300改成3000. 然后,分析导入数据校验,都是和哪些数据进行校验的,这些数据都是从数据库来的.每一次都从数据库查…
1.两种查询引擎查询速度(myIsam 引擎 ) InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行. MyISAM只要简单的读出保存好的行数即可. 注意的是,当count(*)语句包含 where条件时,两种表的操作有些不同,InnoDB类型的表用count(*)或者count(主键),加上where col 条件.其中col列是表的主键之外的其他具有唯一约束索引的列.这样查询时速度会很快.就是可…
这里介绍一个直接将excel文件导入mysql的例子.我花了一晚上的时间测试,无论导入简繁体都不会出现乱码,非常好用.PHP-ExcelReader,下载地址: http://sourceforge.net/projects/phpexcelreader说明: 测试环境:MYSQL数据库采用utf8编码.导入EXCEL文档是xls格式,经过测试,xlsx 格式[excel 2007]也OK. 文中红色标注为需要注意的地方,请替换成你配置好的数据,如数据库配置等.运行http://localost…
将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面和大家分享一下: 一.用java来将Excel表格中的数据转到mysql中 这是我们用的第一种方法,就是在java找你感谢个类,然后这个类会将Excel表格中的数据存储到内存里,然后再从内存中读出来插入到数据库中,但是要 注意了,这里是存储到String[ ]数组里面,所以取出来的数据也是Strin…
1.将选中的数据快儿拷贝到一个TXT文本文件中(记得把后面的空格消掉..),假如存到“D:\data.txt”这个位置里. 2.根据要导入的数据快儿建立MySql数据库和表,然后进入命令提示符里使用命令 load data local infile 'D:\data.txt' into table exceltomysql fields terminated by '\t'; 进行导入操作 具体还是参考高手的: http://hi.baidu.com/harite/blog/item/6a5fb…
今天是全国数学建模比赛,同学选的一个题目需要对一个large的Excel表格进行统计,好哥们儿嘛--便帮助他完成了数据从Excel到MySql的转化.记下具体步骤分享给大家,也免得大家到网上到处乱找了. 假如要把如图所示的Excel表格导入到MySql数据库中,如图: ,步骤一:选取要导入的数据快儿,另外要多出一列,如下图: 步骤二:将选中的数据快儿拷贝到一个新建的表格工作薄,然后“另存为” ->“文本文件(制表符分割)(*.txt)”,假如存到“D:\data.txt”这个位置里.如图: 步骤…
通过上一步,环境已搭建好了. 下面开始实战, 首先,编写链接mysql的函数conn_sql.py import pymysql def sql_conn(u,pwd,h,db): conn=pymysql.connect(user=u,passwd=pwd,host=h,db=db) #print("连接数据库"+db+"成功了!!") return conn 在编写,查询数据库的语句:sql.py import pymysql import conn_sql d…
Excel连接到MySQL 即使当今时代我们拥有了类似微软水晶报表之类的强大报表工具和其他一些灵活的客户管 理应用工具,众多企业在分析诸如销售统计和收入信息的时候,微软的Excel依然是最常用的工具.这当然不是没有理由的:Excel以其强大丰富的各种功 能,已经成为办公环境中不可或缺的工具. 然而,现在公司正在逐渐地将数据开始存储在远程数据库中,这样可以供企业员工从不同的地方来阅读和修改数据.但是,以前固有的工作流程习惯是很难打破的.当你的老板需要从远端使用Excel以饼图的形势来看一下最近的销…
1.excel数据入库mysql 首先准备excel文件, 标红的地方需要留意,一个是字段名所在行,一个表名对应页: 然后私用mysql工具 navicat, 选择数据库,然后导入文件, 选中相应execl文件,即可导入. 栏位名行  对应excel文件中,字段名所在的行. 第一个数据行  对应excel文件中,第一行数据所在的行. ----------------------------------------------------------------------------------…