MariaDB社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4429|回复: 2
打印 上一主题 下一主题

长时间处于sending data,巨慢。。。求助

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-21 10:47:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
分了256个表,,每张表均有5000多条记录,每张表结构均为

+------------+-------------+------+-----+-------------------+-------+
| Field      | Type        | Null | Key | Default           | Extra |
+------------+-------------+------+-----+-------------------+-------+
| userid     | char(60)    | NO   | PRI |                   |       |
| useridmd5  | char(32)    | NO   |     |                   |       |
| filemd5    | char(32)    | NO   |     |                   |       |
| content    | mediumblob  | NO   |     |                   |       |
| version    | varchar(32) | NO   |     |                   |       |
| lastupdate | timestamp   | NO   | MUL | CURRENT_TIMESTAMP |       |
+------------+-------------+------+-----+-------------------+-------+
其中每条记录的content是一个1M左右的zip文件,其他字段都实际十几个字符的字串。我的机器是8个cpu,4G内存。

我需要每天把userid和lastupdate弄出来一遍,我试过用一个进程跑256次和32个进程同时跑8次,发现总耗时差不多,大概都需要4个多小时,但如果数据库只有一张5000多条记录的表,跑一遍也就是几秒钟。

这是我其中一条sql语句:
select lastupdate, userid into outfile '/tmp/sgim_user25.udidx'  from sgim_user00;

发现长时间处于sending data状态。其实每个表的规模都不大,不应该会这么慢啊,sql语句如此简单,已经没有什么优化余地了。请高人指点一二,有没有什么办法可以优化呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶 踩
2#
发表于 2009-4-22 11:02:33 | 只看该作者
也就是说你的数据量笼统计算: 5000×1M×256=约1280G(每个表5G)。是不?
那如果在这些数据中找东西,看看那里是瓶颈,IO还是其他,找出它,针对性的解决问题。

建议:
把字段顺序调整一下试试, lastupdate, userid 放在前两个。
或者分表,关联表。
或者把这个大字段直接存入OS中,表里只保留链接...
3#
发表于 2009-10-25 09:46:16 | 只看该作者
大字段直接存入OS中是正道
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|MariaDB社区 ( 京ICP备07012489号    |
业务联系: QQ:48474881; 邮箱: 48474881@qq.com; 电话:13911732319
声明:本站部分文章是网友转载,若未经作者同意或署名有误,请联系网站管理员。

GMT+8, 2024-11-1 16:35 , Processed in 0.065878 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表