关于mysql中数据插入时间过慢问题

目前往MySQL中一次性插入大约一万五千条数据,每条数据九百多列,总共需要十分钟左右,请问时间是否过慢,如果过慢该如何解决?

1

19个回答

如是普通PC级服务器(或是更好一点的消费级服务器),你每条数据平均占用时间为40MS,考虑到你的每条数据有900多列。这样的话,已经不慢了。

如想更快的话:
1、查看是否有索引,索引是以降低插入、删除、修改时的性能,提高查询的性能。所以索引会影响插入的性能,当然自增ID的主键不在此列。
2、查看能否优化数据结构,一条记录900多列过多了。是否有大量重复数据,如有则可以优化。
3、查看能否分表,一个表一次就要插入15000行记录,太多了。是否需要经常查询所有的这些数据,如不是则可以优化(如索引不可避免,则更应如此)。
4、使用事务,一次处理如500行左右。
5、考虑MYSQL本身的日志、备份机制是否可以关掉。(这一点我也不熟)
6、使用更好的服务器。

0
cyang421
cyang421 回复weixin_41986182: 查询不可避免,如果分表的话会不会影响查询效率,另外分表应该按照什么依据来分
大约一年之前 回复

如果有索引的话,建议利用分表操作。万级的数据必须要用垂直分表操作,这样每天插入的数据在不同的表中,索引也就在不同的表的索引中,减少插入带来的效率问题。

1

“ 网上购物系统”的主要功能模块

0

看你是如何操作的?如果通过工具导入,使用事务应该会快一些。

0

这个跟电脑有关,电脑装大的程序多了也会慢的

0

慢 数据更好的组织与存储 也就是数据结构更好一些有利于数据的存取

0

慢可能是因为计算机存储功能的大小有关也有可能跟数据存储的数据结构有关,建议可以释放电脑内存或者选择比较好的数据结构

0
qq_42163775
qq_42163775 有很多种情况可以影响到数据插入的快慢,如电脑本身的配置,用存储过程可以更快。
大约一年之前 回复
cyang421
cyang421 回复r0328p: 怎么界定是否是比较好的数据结构?
大约一年之前 回复
cyang421
cyang421 回复r0328p: 怎么界定是否是比较好的数据结构?
大约一年之前 回复
cyang421
cyang421 回复r0328p: 怎么界定是否是比较好的数据结构?
大约一年之前 回复

是什么需求一次要插入这么多数据 自增ID插入是比较快的 建议分成几个batch插入 每个batch几百条 异步执行
mysql可以进行分库分表 多机插入也可以解决

0

向有索引的表插入数据,是会越来越慢的,因为插入数据之后需要冲减索引。

0

向有索引的表插入数据,建议分成几个batch插入 每个batch几百条 异步执行

0
共19条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mysql批量导入数据遇到的问题
最近项目中有一个需求,需要把大概150W条数据导入mysql数据库中,一共六张表,数据最多的表大概有100W条数据。 因为是一次性导入,不会经常使用,因此计划写成一个小程序,使用原生JDBC,打成jar包,放到服务器上运行。第一次写完,用maven打jar包,打出的jar包不包含mysql驱动等第三方jar,并且java -jar 时没有程序入口,需要在pom.xml文件中加入如下plugin:<
MySQL存储过程插入数据过慢处理方法
在使用存储过程进行千万条数据的插入的时候,插入效率在每分钟七千条左右,这样算下来,需要几十个小时,所以找了一下优化的方法,除了对存储过程本身的优化,还有就是修改了MySQL的配置文件的部分参数 我做了以下几个参数的修改 innodb_log_file_size = 1024M   日志组中的每个日志文件的大小,设置较大的值可以减少脏数据刷新到磁盘的次数 innodb_log_buffer_s...
jpa保存数据过慢的处理办法
1、需求说明 我是一个爬虫工程师,再用webmagic解决实时爬去数据提供给其他系统时出现了这个问题,由于这个系统是分布式爬去系统,对方要获取爬虫数据,只能轮询查看爬虫状态,我要做的是把爬出的数据及时返回给轮询的用户(爬取数据并返回数据需要在30秒内完成)。在爬取一个用户的数据时,这个用户的数据有200条左右使用jpa保存数据到数据库中竟然要1分钟作用(由于不精通jpa,查不出原因),还有就是爬
MySQL简单INSERT超慢原因排查
 导 读作者:高鹏(重庆八怪)原文地址:https://www.jianshu.com/p/5248ca67eac2这个问题是来自一位朋友@春波,我通过pstack最终确...
java读取系统时间写入mysql数据库时,滞后八小时问题的解决 - ghostgarlic的专栏 - CSDNBlog
导读: JAVA日期和时间类彻底解决(Translated by Willpower)(头两段姑且引用Willpower先生的译文)你是否在苦苦挣扎在JAVA语言中的日期和时间中?当你在计算机上显示日期和时间时,, 是否要快一个小时?或者可能要早一个小时?,或者两个小时, 或者更严重? 当你试图用JAVA写日期和时间到一个文件中,或者到你的数据库中(通过Java DatabaseCon
Java向MySQL插入时间类型数据注意的问题
MySQL默认的数据类型格式是:yyyy-MM-dd,如:2017-12-30   如下图:     因此我们在往MySQL数据库中插入数据时,需要先进行格式化。在java中,我们通常这样格式化日期:       //生成日期对象 Date current_date = new Date(); //设置日期格式化样式为:yyyy-MM-dd SimpleDateFo...
提高Kettle的MySQL写入速度
本文mysql数据库安装在树莓派上1 适当加大defaultFetchSize能提高ETL速度,大概10%2 修改参数useCompression=true树莓派插入性能暴涨10倍下文是转载内容使用Kettle的初期,一般只是关注Tranaction如何实现功能,对连接参数可以说基本不关注,其实这里面隐含一些性能问题,如果不熟悉这些性能参数,要想提高性能还真的不容易。参考1:http://juli...
mysql 插入百万数据过慢的解决办法
一开始我用存储过程批量插入100万条数据的时候,用了几个小时都还没有插完,这让我十分郁闷。于是我想应该会有解决办法吧 我存储过程sql代码如下: delimiter # create PROCEDURE test() BEGIN DECLARE i int DEFAULT 1; while i&amp;lt;=1000000 DO insert into book VALUES(null,'jav...
关于向MySQL数据库插入datetime类型时间的问题
开始插入的时候老是提示Unknown column '2016-01-01 12:12:12' in 'field list',看来就是时间出错, 我的表格各类型是这样的 所以,我把时间的格式改成为: 总结:在MySQL中datetime类型加引号括起来,char类型加                      引号,int 啥也不用
Java向MySQL数据库插入时间类型Date数据时需要注意的问题
MySQL默认的数据类型格式是:yyyy-MM-dd,如:2015-12-30 如下图: 因此我们在往MySQL数据库中插入数据时,需要先进行格式化。在java中,我们通常这样格式化日期: //生成日期对象 Date current_date = new Date(); //设置日期格式化样式为:y
java读取系统时间写入mysql数据库时,滞后八小时问题的解决
 JAVA日期和时间类彻底解决(Translated by Willpower)(头两段姑且引用Willpower先生的译文)你是否在苦苦挣扎在JAVA语言中的日期和时间中?当你在计算机上显示日期和时间时,, 是否要快一个小时?或者可能要早一个小时?,或者两个小时, 或者更严重? 当你试图用JAVA写日期和时间到一个文件中,或者到你的数据库中(通过Java DatabaseConnecti
mysql数据库关于时间的函数
参考:http://www.w3school.com.cn/sql/func_date_format.asp date函数即日期相关 now() 返回当前的日期和时间 curdate() 返回当前的日期 curtime() 返回当前的时间 date() 提取日期或日期时间表达式的日期部分 extract(unit from date) 返回日期/时间的单独部分,unit ...
java向mysql中插入一个时间字段,时间总是少一天的问题
问题原因:使用了高版本的mysql(本人使用的mysql8.0)   根本原因:由于是高版本Mysql所以在后台连接数据库的时候 jdbc.properties文件中的配置就与老版本的不一样了,需要稍作改变 mysql5Url=mysqlurl=jdbc:mysql://localhost:3306/mybatis mysql8url=jdbc:mysql://localhost:3306...
python将系统时间写入mysql的datetime类型字段
dt=datetime.datetime.now().strftime(&quot;%Y-%m-%d%H:%M:%S&quot;) models.ptask.date_changed=datetime.datetime.fromtimestamp(time.mktime(time.strptime(dt,&quot;%Y-%m-%d%H:%M:%S&quot;)))  
java.util.Date()插入MySQL数据库datetime字段出错的解决办法
出错的原因:两种date格式不一致。 java中默认的日期格式是:Thu Mar 31 18:59:29 CST 2016 MySQL中默认的日期格式是:2016-03-31 06:59:29 所以出错了。 解决办法:将java.util.Date()格式转化成MySQL的格式; 例: SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM
MySQL中使用sql语句插入日期时间类型的写法
1、时间戳: insert into `xqliu`.`c_test`(f_timestamp) values(now())   2、日期时间: insert into `xqliu`.`c_test`(f_datetime) values(now())   3、日期: insert into `xqliu`.`c_test`(f_date) values(date(now()))
java向MySQL中插入时间数据
一:各种Date之间的转换方法 public class TimeTest { public static void main(String[] args) { Date date = new Date(); // 一、获取当前系统时间和日期并格式化输出: SimpleDateFormat df = new SimpleDateFormat(&amp;quot;yyyy-MM-dd HH:...
MySQL8小时的解决方案
程序报错信息 The last packet successfully received from the server was 34,132 milliseconds ago. The last packet …… 问题描述 连接池保留了连接,但是mysql数据库已经回收了连接 解决方案 程序连接池配置 如果使用的是JDBC,在JDBC URL上添加?autoRe
python写入mysql中datetime类型遇到的问题
在mysql数据库中,有一个datetime类型的字段用于存储记录的日期时间值。python程序中有对应的一个datetime变量dt。 现在需要往mysql数据库中添加记录,每次添加时,将datetime型变量dt写入mysql数据库tablename表中exTime字段里。 问题,如何写入?调试时,总是无法写入。 运行结果没有报错,但数据库中没有写入。 Process finished
向MySQL数据库插入日期时出错解决
当我们通过jdbcdao向mysql数据库插入日期时,如果程序会抛出下面的异常: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: 'Sun Jul 28 00:00:00 CST 1996' for column 'birthday' at row 1原因:我们插入的日期时java.util.Da...
Mysql经典的“8小时问题”
MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开该连接,而 c3p0 连接池则以为该被断开的连接依然有效。 假设你的数据库是mysql,如果数据源配置不当,将可能发生经典的“8小时问题”。原因是mysql在默认情况下,如果发现一个连接的空闲时间超过8小时,将会在数据库端自动关闭这个连接。而数据源并不知道这个连接已经关闭了,当它将这个无用的连接返回给某个dao时
Java代码中Date类型插入到mysql中出现时间不一致的问题
        今天在项目中遇到了一个问题,就是在Java中属性是util.date,表中对应的字段类型是datetime,然后Java代码插入到MySQL数据库中后,发现时间相差8个小时。后来去搜了下,发现是因为dbconfig配置文件中 jdbc_url=jdbc:mysql://127.0.0.1:3306/wmp?useUnicode=true&amp;amp;characterEncodin...
java下的mysql数据库插入越插越慢的问题解决(百万数据量级别)
最近的项目需要导入大量的数据,插入的过程中还需要边查询边插入。插入的数据量在100w左右。 一开始觉得100w的数据量不大,于是就插啊插,吃了个饭,回来一看,在插入了50多w条数据后,每秒就只能插10条了。。觉得很奇怪,为啥越插越慢呢? 于是就开始分析插入的时间损耗,想到了如下的解决方案:(mysql使用的INNODB引擎) 1.分析是否是由主码,外码,索引造成的插入效率降低 主码:由于主
java date的值插入到mysql里面就发生变化
java程序里面代码如下Date date=new Date(); date.setHours(0); date.setMinutes(0); date.setSeconds(0);想凌晨0点时分定时插入数据,数据的日期也是凌晨0点时分才行。可是打开数据库时才发现有点差异,java date的值应该是2018-07-05 00:00:00,可是在mysql 的数据却变成了2018-07-04...
第一篇:MySQL记录数据的插入和修改时间
一、MySQL记录数据的插入和修改时间   创建数据表 CREATE TABLE `test_time` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `create_time` datetime DEFAULT NULL, `update_time` timestamp NO...
MySQL中怎么插入DateTime型的数据或如何insert时间值进去(还有 注意:Oracle的时间格式)
同学插入时间值于oprTime字段(该字段为dateTime类型),insert失败,无论是加单引号括起时间值还是值换时间格式,都报异常 因为我们很相信标识列能自动为我们插入值,而且异常(在console控制台里)没有说主键怎么了啥的,当然我一看这问题,就检查了字段列数和字段类型有没有问题,确认没有问题,才给时间值做改变,实在无用,只能百度,虽然百度的这条MySql要怎么插入DateTime型的...
解决 mysql 树形结构插入数据查询死循环问题
在项目中,大家可能会遇到这样一个问题,就是当你操作那些具有上下级的树的表的时候,如果是单纯的父子级关系,可能不会碰见这个问题,但是如果这个看起来具有树形结构的表形成闭环的时候,问题就来了,我遇到的结果就是,一旦碰到这样的情况,就是页面一直卡在那里,对应着后台就是,要么程序死循环,要么数据库死循环,直到系统卡死崩溃。 这个问题很是头疼,在网上找了不少资料没有发现真正能够解决我的问题的,究其原因,还是...
mysql存入百万级数据速度慢的解决方法
最近公司分配了一个任务,测试一个向数据库存入千万级数据工具的效率及所存在的问题。于是乎首先测试已存在的工具的存取效率,结果如下:        mysql 数据库:                               1万条数       据耗时8分钟                               5万条数       据耗时42分钟        远程连接orac
Mysql查询每天中的最后插入的一小时的数据
select statistics_date AS statisticsDate, sum(ACTIVE_USER_END) AS activeUser,sum(ACTIVE_USER) from ACTIVE_USER_HOUR t1 WHERE  t1.STATISTICS_SIGN =  (SELECT max(STATISTICS_SIGN) FROM ACTIVE_USER_HOU
mysql 插100W条记录 时间 记录
   
MySQL数据添加创建时间和修改时间
PHP给MySQL数据添加创建时间和修改时间修改时间:TIMESTAMP时间戳在创建新记录和修改现有记录的时候都对这个数据列刷新:TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP修改时间可以直接创建一个TIMESTAMP字段。设置默认值为ON UPDATE CURRENT_TIMESTAMP创建时间:因为在mysql中,如
Java在mysql数据库中插入datatime时间数据
//将时间字符串转Timestamp类型 public static Timestamp string2Time(String dateString) throws ParseException { DateFormat dateFormat; dateFormat = new SimpleDateFormat(&amp;quot;yyyy-MM-dd kk:mm:ss&amp;quot;, Locale.ENG...
MySql数据库插入一条数据时,create_time字段自动添加为当前时间
有时候我们会有这样的需求。往数据库添加一条数据。然后表中有一个字段是creat_time。添加数据的同时,这个字段默认为当前时间。其实很简单。设置字段类型为timestamp。然后下面默认值填写CURRENT_TIMESTAMP 下面那个根据当前时间戳更新 勾上。yes.搞定!~~~转载注明出处 谢谢~~~...
mysql 时间语句【集锦】
select * from table_name where time &amp;gt;= now()-interval 5 minute;取当前时间:select current_timestamp;输出:2016-06-16 16:12:52select now(); 输出:2016-06-16 16:12:52取当前时间的前一分钟:select SUBDATE(now(),interval 60 s...
MySql 使用Find In Set查询很慢的解决办法
MySQL版本:5.7.19 1、需求场景 a) 表说明:商品分类关系表[t_class_product],[classId]&amp;nbsp; 分类主键,fn_class_childs(1) 返回所有子分类主键字符串; b) 功能说明: 依据 分类主键 查询该分类下的所有商品 2、问题定位 a) 之前操作:新上传几千个商品,...
mysql插入数据优化
插入多条数据时,INSERT INTO `tb_name` (field1,field2,field3) values (val1,val2,val3);INSERT INTO `tb_name` (field1,field2,field3) values (val4,val5,val6);用一条语句替换INSERT INTO `tb_name` (field1,field2,field3) va...
插入oracle 数据库中的时间。mysql转Oracle使用
    注:向数据库插入Timestamp类型的数据,数据库中日期类型同样需要为timestamp,若为date类型则任然显示年月日而无时分秒   java中的PreparedStatement类型的setDate() 方法要求 java.sql.Date,而 java.sql.Date 的构造函数不能为空。  所以正确做法是:  pstmt.setDate(x, new Date(Sys...
JAVA插入数据到MySql少了8小时,多了6小时
JAVA插入数据到MySql少了8小时原文 https://www.cnblogs.com/xiebin2013/p/5911156.html这个问题,真的是找了很久。之前以为是mysql的timezone有问题。根据网上的方法,把timezone改了,还是不起作用。然后以为是java的问题,但试来试去java也不存在timezone不对的问题。最后,竟然是mysql连接字符串的问题,连接字符串上多
DJANGO MODELS通过DATETIMEFIELD保存到MYSQL的时间的时区问题
最近开始使用Django开发一些系统,在models.py中设置一些数据库表结构并给日期时间字段赋初值,不过在使用的过程中,遇到一点问题。问题是,我本来服务器使用的市区是“Asia/Shanghai”(+08:00),然后用datetime.now保存到数据库中时,里面的时间总是比我的系统时间相差8小时(感觉是UTC时间),但是我也查看了MySQL数据库中的时区是“+08:00”的(在MySQL中
MYSQL单表数据量过大查询过慢配置优化innodb_buffer_pool_size
  一. 情景            有张表,里面有300多万数据, 使用select count(1) from table 查询的时候要好几分钟,询问运维后添加了innodb_buffer_pool_size参数,然后就1秒就查出来了。 二. 配置 ...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 关于大数据培训 数据库中关于课程的表