MariaDB社区
标题:
长时间处于sending data,巨慢。。。求助
[打印本页]
作者:
palance
时间:
2009-4-21 10:47
标题:
长时间处于sending data,巨慢。。。求助
分了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语句如此简单,已经没有什么优化余地了。请高人指点一二,有没有什么办法可以优化呢?
作者:
kider
时间:
2009-4-22 11:02
也就是说你的数据量笼统计算: 5000×1M×256=约1280G(每个表5G)。是不?
那如果在这些数据中找东西,看看那里是瓶颈,IO还是其他,找出它,针对性的解决问题。
建议:
把字段顺序调整一下试试, lastupdate, userid 放在前两个。
或者分表,关联表。
或者把这个大字段直接存入OS中,表里只保留链接...
作者:
yinshi
时间:
2009-10-25 09:46
大字段直接存入OS中是正道
欢迎光临 MariaDB社区 (http://123.56.88.72/)
Powered by Discuz! X3.2