cyang421
cyang421
2018-05-14 14:01
采纳率: 28.6%
浏览 2.4k

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

19条回答 默认 最新

  • weixin_41986182
    weixin_41986182 2018-05-15 01:44
    已采纳

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

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

    点赞 评论
  • jason2703
    jason2703 2018-05-14 14:20

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

    点赞 评论
  • myfrankboy
    myfrankboy 2018-05-14 15:07

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

    点赞 评论
  • qq_41791684
    qq_41791684 2018-05-14 15:15

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

    点赞 评论
  • beiback
    beiback 2018-05-14 15:19

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

    点赞 评论
  • r0328p
    r0328p 2018-05-14 16:00

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

    点赞 评论
  • lxster
    lxster 2018-05-14 16:23

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

    点赞 评论
  • qq_41718586
    qq_41718586 2018-05-14 17:03

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

    点赞 评论
  • weixin_41448329
    「已注销」 2018-05-14 17:16

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

    点赞 评论
  • szwsucceed
    szwsucceed 2018-05-15 00:16

    mysql 一次这样大的数据量,十分钟不算慢了

    点赞 评论
  • a718089112
    a718089112 2018-05-15 00:51

    你这是什么场景啊?
    1,首先保证你的是一次批量保存操作
    2,如果数据可以不考虑事务的话 表引擎使用:MyISAM
    引擎:InnoDB 一般3000条左右就出现性能瓶颈了

    点赞 评论
  • qq_35883015
    乾元清 2018-05-15 01:21

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

    点赞 评论
  • qq418814
    qq418814 2018-05-15 01:25

    速度已经可以了,这么大的数据量,如果没有特殊要求
    1、优化硬件,包括提高磁盘io速度
    2、去掉目标表的索引

    点赞 评论
  • qq_19550657
    我穷你先来 2018-05-15 03:02

    ## 1.如果是应用写入数据,建议使用batch insert sql的写法:

    ## insert into test values(1,'aa'),(2,'bb'),.....(100000,'bb');

    ## 2.如果是数据库迁移,建议使用mysql的load 和 unload命令,一次性加载几百万数据都不成问题。

    点赞 评论
  • jaxiaoxing2018
    jaxiaoxing2018 2018-05-15 03:04

    慢压顶可能是因为计算机存储功能的大小有关也有可能跟数据存夺鼎折覆餗村顶替储的堙数据结构有关,建议可以释放电脑内大规模存或者选择比较好的数据结构

    点赞 评论
  • THN1021
    THN1021 2018-05-15 03:06

    电脑性能不够或者装大的程序多了

    点赞 评论
  • weixin_38369323
    weixin_38369323 2018-05-15 03:13

    创建自增id,批量插入,数据增加玩后在建索引

    点赞 评论
  • heni6560
    洛阳纸贵 2018-05-15 03:47

    1.优化硬件
    2.mysql使用的INNODB引擎,修改INNODB引擎的配置
    3.建立合理有效的索引
    4.字段类型优化

    点赞 评论
  • qq_38004995
    lq七夜 2018-05-15 05:50

    慢的话跟电脑的处理器也有关,也有可能数据量过多导致的

    点赞 评论

相关推荐