我将一个9500万行、9列的文件上传到我的工作站上的MySQL数据库,该数据库有32 Gb的内存。它们是遗传数据,其中第一列是染色体编号(chr TINYINT)和基因组位置(pos BIGINT)。我正尝试在MySQL Workbench 8.0中创建一个关于chr和pos的索引,但是索引需要几个小时才能超时。
我还尝试了只在染色体上进行索引(这只是一个从1到22的带符号的TINYINT ),但没有成功。索引挂起几个小时是正常的吗?Windows任务管理器说我只使用了8 Gb的内存。
发布于 2019-02-23 06:28:39
当我使用SQL时,有一个技巧对我很管用--在上传数据之前添加索引。
执行create table语句后,立即添加
ALTER TABLE <table_name> ADD KEY ...然后开始上传。
如果您的转储具有CREATE TABLE ...语句,请确保它也具有IF NOT EXISTS,而不具有DROP TABLE ...。
我不太确定视窗系统,但对于我的Ubuntu来说,我用它作为MySQL playground的服务器,16 as的内存足以处理50M+的行表。
https://stackoverflow.com/questions/54835954
复制相似问题