目前往MySQL中一次性插入大约一万五千条数据,每条数据九百多列,总共需要十分钟左右,请问时间是否过慢,如果过慢该如何解决?
如是普通PC级服务器(或是更好一点的消费级服务器),你每条数据平均占用时间为40MS,考虑到你的每条数据有900多列。这样的话,已经不慢了。
如想更快的话:
1、查看是否有索引,索引是以降低插入、删除、修改时的性能,提高查询的性能。所以索引会影响插入的性能,当然自增ID的主键不在此列。
2、查看能否优化数据结构,一条记录900多列过多了。是否有大量重复数据,如有则可以优化。
3、查看能否分表,一个表一次就要插入15000行记录,太多了。是否需要经常查询所有的这些数据,如不是则可以优化(如索引不可避免,则更应如此)。
4、使用事务,一次处理如500行左右。
5、考虑MYSQL本身的日志、备份机制是否可以关掉。(这一点我也不熟)
6、使用更好的服务器。
速度已经可以了,这么大的数据量,如果没有特殊要求
1、优化硬件,包括提高磁盘io速度
2、去掉目标表的索引
“ 网上购物系统”的主要功能模块
看你是如何操作的?如果通过工具导入,使用事务应该会快一些。
这个跟电脑有关,电脑装大的程序多了也会慢的
慢 数据更好的组织与存储 也就是数据结构更好一些有利于数据的存取
慢可能是因为计算机存储功能的大小有关也有可能跟数据存储的数据结构有关,建议可以释放电脑内存或者选择比较好的数据结构
是什么需求一次要插入这么多数据 自增ID插入是比较快的 建议分成几个batch插入 每个batch几百条 异步执行
mysql可以进行分库分表 多机插入也可以解决
向有索引的表插入数据,是会越来越慢的,因为插入数据之后需要冲减索引。
向有索引的表插入数据,建议分成几个batch插入 每个batch几百条 异步执行
mysql 一次这样大的数据量,十分钟不算慢了
你这是什么场景啊?
1,首先保证你的是一次批量保存操作
2,如果数据可以不考虑事务的话 表引擎使用:MyISAM
引擎:InnoDB 一般3000条左右就出现性能瓶颈了
如果有索引的话,建议利用分表操作。万级的数据必须要用垂直分表操作,这样每天插入的数据在不同的表中,索引也就在不同的表的索引中,减少插入带来的效率问题。
电脑性能不够或者装大的程序多了
创建自增id,批量插入,数据增加玩后在建索引
1.优化硬件
2.mysql使用的INNODB引擎,修改INNODB引擎的配置
3.建立合理有效的索引
4.字段类型优化
慢的话跟电脑的处理器也有关,也有可能数据量过多导致的
慢压顶可能是因为计算机存储功能的大小有关也有可能跟数据存夺鼎折覆餗村顶替储的堙数据结构有关,建议可以释放电脑内大规模存或者选择比较好的数据结构