首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql太多索引键

问mysql太多索引键
EN

Stack Overflow用户
提问于 2015-07-13 07:09:25
回答 1查看 2.1K关注 0票数 0

我致力于数据库优化,在每隔15分钟从.csv文件(约3800条记录)中插入大量内容。

为此,我将通过cron运行一个mis.sql文件。该文件包含9 (09) mysql查询,这些查询从大容量插入的表中执行重复删除、内连接插入、删除和更新(ALTER、DELETE、insert和UPDATE)。

最近,在批量插入查询之前运行的查询遇到了一个问题。查询是-

改变忽略表pb添加唯一的索引(恩,时间);

错误1069 (42000):指定的键太多;允许最多64个键

当遇到上述错误时,将跳过所有后续查询。然后,我检查了表pb,发现有64个唯一索引键与02索引键和01主键一起创建,具有相同的基数值。

当尝试删除一个唯一的索引时,它花费了太多的时间( 979,618条记录几乎需要15分钟),但最后,它并没有被删除。

这个问题有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-13 07:20:29

第一件事:为什么会有ALTER命令呢?新的数据应该改变数据,而不是数据库设计。因此,虽然INSERT、UPDATE和DELETE是这样一个脚本中的有效选项,但ALTER不属于这些选项。把它移开。

至于删除索引:这应该只需要一小部分秒。没有什么可以建造或重建,只需移除。

代码语言:javascript
复制
DROP INDEX index_name ON tbl_name;

我能想到的唯一原因是,在没有插入、更新和删除的情况下,甚至没有一个很短的时间片。因此,您可能需要暂时停止作业(或者在空文件上运行它),删除所有不必要的索引(只保留一个索引),然后重新开始作业。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31377315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档