php – 导出/导入没有索引的5000万行数据库?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 导出/导入没有索引的5000万行数据库?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有很多数据 – 5000万行.但由于次优选择,我选择了错误的索引,现在插入需要花费大量时间(插入1000行需要60秒).

CREATE TABLE `slots` (
 `customerid` int(11) NOT NULL,`orderid` int(11) NOT NULL,`queueid` int(11) NOT NULL AUTO_INCREMENT,`ITem_id` int(3) NOT NULL,`VARiable1` int(3) NOT NULL,`variable2` int(3) NOT NULL,`variable3` int(3) NOT NULL,`variable4` int(3) NOT NULL,`variable5` int(3) NOT NULL,`variable6` int(3) NOT NULL,`variable7` tinyint(1) NOT NULL,`variable8` tinyint(1) NOT NULL,`variable9` tinyint(1) NOT NULL,Primary KEY (`customerid`,`orderid`,`queueid`),unique KEY `queueid` (`queueid`),KEY `orderid` (`orderid`)
) ENginE=InnoDB AUTO_INCREMENT=25883472 DEFAULT CHARSET=latin1

我认为这是因为PRIMARY KEY是多列的,并且每次插入后需要对表进行重新索引(因为那些customerid和orderid不是以任何asccending / descending方式插入,而是在随机位置插入).如果我在queueid上有一个自动增量的主键,它会大大加快插入速度吗?

我可以在没有破坏索引的情况下导出表吗?然后用更好的密钥重新索引它?

我尝试用sql语句删除密钥但是花了很长时间我打断了它.有没有办法看到进展?如果我不知道我需要多长时间,我不会等待 – 这可能是几天之后?

我需要重新索引这个表,因为它最终会有10亿行,插入性能会恶化得更多.

或者最好丢弃我已经插入的内容并使用适当的索引启动一个新表?不要重复使用旧数据?

解决方法

脚本宝典总结

以上是脚本宝典为你收集整理的php – 导出/导入没有索引的5000万行数据库?全部内容,希望文章能够帮你解决php – 导出/导入没有索引的5000万行数据库?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。