mysql 创建索引很慢_mysql 中 创建索引很慢,怎么解决

在处理包含800万条数据的MySQL表时,遇到创建索引速度慢的问题,讨论了如何优化。建议包括在导入数据前建立索引,调整innodb_flush_log_at_trx_commit参数,将varchar转换为char类型,以及考虑使用LOAD DATA INIFILE批量导入。此外,还提到升级MySQL到5.5.x版本可能带来性能提升。
摘要由CSDN通过智能技术生成

from http://topic.csdn.net/u/20110921/16/7d335c53-4d88-4fca-b150-b1d165fa588a.html

引用

如题,我现在 有一张表。。。里面的数据大概就是 800w 条左右,当然以后也可能会更多,这个表会频繁的更新!

我现在的处理是:每次更新 都会先truncate 这张表(因为里面的数据 已经不需要了),然后我会 drop index !

这样之后我会去 insert 数据 。。。。(这些数据量 有可能过千万。。级别的) ,之后就是为数据建立索引!

建立索引的过程很慢。。。800w 数据 现在执行了 半个小时 还没有完成。。。。。建立索引的 字段的类型是 varchar。。。

(这里只能是varhcar 之前有试过 建立多列索引。。那样需要建立 6 列 。。耗时 大概 1 小时左右!如果数据量更大 那么时间

会更长。。。) 有没有更好的解决办法。。或者 怎么优化一下mysql 数据库。。

对我有用[0]丢个板砖[0]引用举报管理TOP回复次数:36

wfevgch

(聪明的一休)

等 级:

#1楼 得分:0回复于:2011-09-21 17:02:02首先查询字段用char会好些

你数据量大,不妨试一下,先建索引,当然insert速度会慢,你把innodb_flush_log_at_trx_commit置为0后进行insert,比较一下速度。

对我有用[0]丢个板砖[0]引用举报管理TOP精华推荐:求SSAS中的计算成员中属性成员的使用

wIloverYou123456789

(wIloverYou123456789)

等 级:

#2楼 得分:0回复于:2011-09-21 17:04:25引用 1 楼 wfevgch 的回复:

首先查询字段用char会好些

你数据量大,不妨试一下,先建索引,当然insert速度会慢,你把innodb_flush_log_at_trx_commit置为0后进行insert,比较一下速度。

我知道。。我是先 insert 之后 才去建立的 index 。。。。

你的意思是先建立 index 然后调整 mysql 的 innodb_flush_log_at_trx_commit 。。。这样一来 在执行

insert into 数据的操作 速度 会 提高么?

对我有用[0]丢个板砖[0]引用举报管理TOP精华推荐:MySQL--- FAQ(2008-10-30更新)

wwwwb

等 级:

9

23

23

#3楼 得分:0回复于:2011-09-21 17:04:391种方法:用SELECT INTO OUTFILE导出记录,

TRUNCATE 此TABLE,建立索引,用LOAD DATA INIFILE再导入

对我有用[0]丢个板砖[0]引用举报管理TOP精华推荐:用C#/.NET挑战一下VFP

wIloverYou123456789

(wIloverYou123456789)

等 级:

#4楼 得分:0回复于:2011-09-21 17:13:44引用 3 楼 wwwwb 的回复:

1种方法:用SELECT INTO OUTFILE导出记录,

TRUNCATE 此TABLE,建立索引,用LOAD DATA INIFILE再导入

我现在就是这么做的。。。。into file 。。。导入数据不慢,也就是三四分钟的事情。。问题在于我导入之后 要执行一些查询 和统计 ,这个过程很忙!!我要优化的就是 查询和统计。。为了解决这个问题。。我想到的就是去建立索引!但是 为800w 条数据建立索引 是个很慢的过程 ,希望能在建立索引的时候 提高速度和效率!

对我有用[0]丢个板砖[0]引用举报管理TOP精华推荐:MDX 如何 翻译 转换 为 SQL 脚本

WWWWA

(aaaa)

等 级:

2

12

15

#5楼 得分:0回复于:2011-09-21 17:16:10我现在就是这么做的:

你的步骤是这样?先建立索引

RUNCATE 此TABLE,建立索引,用LOAD DATA INIFILE再导入

对我有用[0]丢个板砖[0]引用举报管理TOP精华推荐:关于项目相互引用的问题

wIloverYou123456789

(wIloverYou123456789)

等 级:

#6楼 得分:0回复于:2011-09-21 17:20:06引用 5 楼 wwwwa 的回复:

我现在就是这么做的:

你的步骤是这样?先建立索引

RUNCATE 此TABLE,建立索引,用LOAD DATA INIFILE再导入

是的。。你的理解是对的。。我就是这么做的!!!但是 。导入速度还可以。。问题就是建立索引。。然后查询 和统计!!! 。。这是问题的关键!!

对我有用[0]丢个板砖[0]引用举报管理TOP

wwwwb

等 级:

9

23

23

#7楼 得分:0回复于:2011-09-21 17:25:17问题就是建立索引:再问一次,你是在导入数据前建立的索引还是导入后建立的,仔细看看我的建议

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值