MySQL在索引时超时

时间:2019-02-22 22:17:09

标签: mysql indexing mysql-workbench

我将9500万行9列的文件上传到了具有32 Gb内存的工作站上的MySQL数据库。它们是遗传数据,第一列是染色体编号(chr TINYINT)和基因组位置(pos BIGINT)。我正在尝试在chr和pos的MySQL Workbench 8.0中创建索引,但是索引要花几个小时才能超时。

我还尝试仅在染色体上索引(这只是从1到22的带符号TINYINT),但没有成功。像这样挂几个小时索引是否正常? Windows任务管理器说我只使用8 Gb的内存。

1 个答案:

答案 0 :(得分:0)

当我使用SQL时,对我有用的一个技巧是-在上传数据之前添加索引。

在执行create table语句后,立即添加

ALTER TABLE <table_name> ADD KEY ...

然后开始上传。

如果转储中有CREATE TABLE ...条语句,请确保它也有IF NOT EXISTS并且没有DROP TABLE ...

我不确定Windows,但是对于我作为MySQL操场服务器使用的Ubuntu,16Gb RAM足以处理50M +行表。