首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL,加载数据并发本地、禁用和启用密钥

问MySQL,加载数据并发本地、禁用和启用密钥
EN

Stack Overflow用户
提问于 2013-01-23 09:11:38
回答 1查看 428关注 0票数 0

目前,我使用MyISAM engine将数据插入到表中,

我希望通过在加载数据完成后构建索引来优化LOAD DATA (预先禁用键并在其完成后启用它们)。

从LOAD DATA CONCURRENT文档中,加载数据应该将记录添加到表的末尾,同时我感兴趣的是对同一表的并发读取将继续使用键。我保证读取操作只会尝试从表中读取信息,直到LOAD DATA CONCURRENT启动前的最后一个可用索引(自动递增id)为止。

例如:

LOAD DATA CONCURRENT将从索引100000开始添加数据,并自动将索引增加到200000。

同时,可能会发生SELECT * FROM TableName WHERE id <=99999 AND ...语句。

是否可以仅在本地禁用LOAD DATA CONCURRENT语句的键,以便读取操作仍将在其SELECT语句中使用定义的索引?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-23 09:36:40

我假设1.您的id列是主键,2.您计划使用ALTER TABLE ... DISABLE KEYS。

根据手册

换桌子..。禁用键告诉MySQL停止更新非唯一索引。(...)虽然非唯一索引被禁用,但对于否则将使用它们的SELECT和EXPLAIN等语句,它们将被忽略。

因此,主键仍将用于表单的查询。

代码语言:javascript
复制
SELECT * FROM TableName WHERE id <=99999

但是,不可能仅在表的子集上禁用键。

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

https://stackoverflow.com/questions/14475973

复制
相关文章

相似问题

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