mysql大表建索引的问题

发布于 2021-11-06 06:32:40 字数 756 浏览 800 评论 9

 

mysql 有个600g表 想建索引
看了手册
先用myisamchk --keys-used=0 -rq /path/to/db/tbl_name禁索引
再用myisamchk -r -q /path/to/db/tbl_name建索引

物理内存一共30g
在myv.cnf里设置了 [myisamchk]的参数

sort_buffer_size=20g
key_buffer_size=8g
read_buffer_size=4g
write_buffer_size=4g  
足够的tmpdir

但是运行 myisamchk --keys-used=0 -rq /path/to/db/tbl_name 建索引的时候
用top观察 virt和RES 显示却都是3g


问题是为什么只用了3g的内存?是不是参数有问题?
多谢各位了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

猫九 2021-11-08 22:50:09

我看到一个文章上说

Repair by sort.的时候 更多是和sort_buffer_size参数有关

http://www.mysqlab.net/knowledge/kb/detail/topic/myisam/id/5183

The second set of variables that are significant is the myisam_max_sort_file_size and the myisam_max_extra_sort_file_size. myisam_max_sort_file_size is the maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index when using the sort method.

Also, if the size of the temporary file needed to use the sort method exceeds key_buffer + myisam_max_extra_sort_file_size the slower key cache based method will be used.

我观察到临时空间用的很多唉

睡觉 明天吧key_buffer 加大到20g看看

多谢各位

旧城烟雨 2021-11-08 22:50:07

1 key_buffer 加大到15g还是一样

2 read_buffer_size=4g

write_buffer_size=4g

但是运行时候报这个参数被自动调整到2g了

狼亦尘 2021-11-08 22:45:07

关键现在太慢了

要是只用那么多内存 能很快完成也没话说了

没有办法能快点吗

还有个方法是alter table disable/ enable keys

也设置了类似的参数 但是这样做更慢

请问各位 你们平时都是怎么做的

瀞厅☆埖开 2021-11-08 22:30:05

我的猜测可能是

read_buffer_size=4g
write_buffer_size=4g

的限制造成的。

深巷少女 2021-11-08 22:23:02

设置key_buffer = 20G

成熟稳重的好男人 2021-11-08 20:51:25

引用来自#5楼“ssggg”的帖子

现在内存也不值钱了吧 

内存都快要当硬盘用了 呵呵

关键现在有资源用不上 着急哎

情场扛把子 2021-11-08 04:40:00

现在内存也不值钱了吧 

内存都快要当硬盘用了 呵呵

关键现在有资源用不上 着急哎

陌上芳菲 2021-11-07 21:19:57

30G的内存,太奢侈了,匀点给我吧,呜呜,oschina的服务器才4G啊,还要跑tomcat :(

囚你心 2021-11-07 03:31:49

用不到那么大的内存,正常的吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文