Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单的MySQL查询花费的时间太长_Mysql_Performance_Debian_Innodb - Fatal编程技术网

简单的MySQL查询花费的时间太长

简单的MySQL查询花费的时间太长,mysql,performance,debian,innodb,Mysql,Performance,Debian,Innodb,我在Debian6.0上的MySQL(0.5GB数据库)中使用InnoDB 今天早上(经过120天的正常运行后),服务器突然挂起(事实上,服务器在过去两天中第二次挂起),我不得不通过hoster CP重新启动它 在kern.log中,我得到了以下信息: Apr 16 09:43:35 lhost kernel: [76680.208104] INFO: task mysqld:9755 blocked for more than 120 seconds. Apr 16 09:43:35 lhos

我在Debian6.0上的MySQL(0.5GB数据库)中使用InnoDB

今天早上(经过120天的正常运行后),服务器突然挂起(事实上,服务器在过去两天中第二次挂起),我不得不通过hoster CP重新启动它

在kern.log中,我得到了以下信息:

Apr 16 09:43:35 lhost kernel: [76680.208104] INFO: task mysqld:9755 blocked for more than 120 seconds.
Apr 16 09:43:35 lhost kernel: [76680.233913] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Apr 16 09:43:35 lhost kernel: [76680.234249] mysqld        D ffff88007dc67170     0  9755   1241 0x00000000
Apr 16 09:43:35 lhost kernel: [76680.234472]  ffff88007dc67170 0000000000000086 0000000000000000 ffffffffa021c4c2
Apr 16 09:43:35 lhost kernel: [76680.234815]  ffff880009ff1ad8 ffff880009ff1ad8 000000000000f9e0 ffff880009ff1fd8
Apr 16 09:43:35 lhost kernel: [76680.235181]  0000000000015780 0000000000015780 ffff88007d177170 ffff88007d177468
Apr 16 09:43:35 lhost kernel: [76680.235549] Call Trace:
Apr 16 09:43:35 lhost kernel: [76680.235732]  [<ffffffffa021c4c2>] ? ext4_mark_iloc_dirty+0x46e/0x4f7 [ext4]
Apr 16 09:43:35 lhost kernel: [76680.235963]  [<ffffffffa021cd61>] ? ext4_mark_inode_dirty+0x18f/0x1c4 [ext4]
Apr 16 09:43:35 lhost kernel: [76680.236212]  [<ffffffff812fc2ab>] ? __mutex_lock_common+0x122/0x192
Apr 16 09:43:35 lhost kernel: [76680.236422]  [<ffffffff812fc3d3>] ? mutex_lock+0x1a/0x31
Apr 16 09:43:35 lhost kernel: [76680.236626]  [<ffffffff81113c8c>] ? __blockdev_direct_IO+0x1d3/0xa60
Apr 16 09:43:35 lhost kernel: [76680.236852]  [<ffffffff810b51c2>] ? generic_file_buffered_write+0x1f5/0x278
Apr 16 09:43:35 lhost kernel: [76680.237097]  [<ffffffffa021da26>] ? ext4_ind_direct_IO+0x10e/0x1be [ext4]
Apr 16 09:43:35 lhost kernel: [76680.237320]  [<ffffffffa02205c9>] ? ext4_get_block+0x0/0xe2 [ext4]
Apr 16 09:43:35 lhost kernel: [76680.237528]  [<ffffffff810b57bf>] ? generic_file_aio_read+0xf6/0x536
Apr 16 09:43:35 lhost kernel: [76680.237794]  [<ffffffff81071dbf>] ? wake_futex+0x31/0x4e
Apr 16 09:43:35 lhost kernel: [76680.237984]  [<ffffffff810ef061>] ? do_sync_read+0xce/0x113
Apr 16 09:43:35 lhost kernel: [76680.238278]  [<ffffffff8100f79c>] ? __switch_to+0x285/0x297
Apr 16 09:43:35 lhost kernel: [76680.238471]  [<ffffffff81065046>] ? autoremove_wake_function+0x0/0x2e
Apr 16 09:43:35 lhost kernel: [76680.238687]  [<ffffffff81048282>] ? finish_task_switch+0x3a/0xaf
Apr 16 09:43:35 lhost kernel: [76680.238897]  [<ffffffff810efa84>] ? vfs_read+0xa6/0xff
Apr 16 09:43:35 lhost kernel: [76680.239090]  [<ffffffff810efb34>] ? sys_pread64+0x57/0x77
Apr 16 09:43:35 lhost kernel: [76680.239290]  [<ffffffff81010b42>] ? system_call_fastpath+0x16/0x1b
我觉得这很奇怪。我曾经尝试过直接通过控制台执行类似的查询(在这个日志中有更复杂的查询,但这不是重点),得到的结果要快得多,所以它不是索引

我能做些什么来解决这个问题?是硬件吗

# free -m
             total       used       free     shared    buffers     cached
Mem:          2012       1355        657          0         40        627
-/+ buffers/cache:        687       1325
Swap:         2047        129       1918
提前谢谢你的建议

其他数据:

慢速查询的配置文件:

mysql> show profile;
+--------------------------------+----------+
| Status                         | Duration |
+--------------------------------+----------+
| starting                       | 0.000020 |
| checking query cache for query | 0.000111 |
| checking permissions           | 0.000003 |
| checking permissions           | 0.000001 |
| checking permissions           | 0.000002 |
| checking permissions           | 0.000001 |
| checking permissions           | 0.000003 |
| Opening tables                 | 0.000032 |
| System lock                    | 0.000004 |
| Table lock                     | 0.000006 |
| init                           | 0.000074 |
| optimizing                     | 0.000020 |
| statistics                     | 0.000171 |
| preparing                      | 0.000027 |
| Creating tmp table             | 0.000160 |
| executing                      | 0.000003 |
| Copying to tmp table           | 4.572503 |
| Creating sort index            | 0.009622 |
| Copying to group table         | 0.029744 |
| Removing duplicates            | 0.010745 |
| Sorting result                 | 0.000086 |
| Sending data                   | 0.004350 |
| end                            | 0.000008 |
| removing tmp table             | 0.001207 |
| end                            | 0.000005 |
| removing tmp table             | 0.000040 |
| end                            | 0.000004 |
| query end                      | 0.000003 |
| freeing items                  | 0.000018 |
| removing tmp table             | 0.000005 |
| freeing items                  | 0.002768 |
| logging slow query             | 0.000004 |
| logging slow query             | 0.000029 |
| cleaning up                    | 0.000006 |
+--------------------------------+----------+
34 rows in set (0.00 sec)

首先尝试执行fsck,然后检查IO性能:dd if=/dev/zero of=/var/lib/mysql/file1 bs=512 count=10000

5120000字节(5.1 MB)已复制,0.0198583 s,258 MB/s正在计时的命令:“dd if=/dev/zero of=/var/lib/mysql/file1 bs=512 count=10000”用户时间(秒):0.00系统时间(秒):0.01第一次,437MB/s用于以下测试您可以做的是使用profiling运行查询:SET profiling=1;你的疑问;展示个人资料;你可能是对的。我已经更新了帖子
|复制到tmp表| 4.572503 |
看起来您没有足够的内存munin不同意:)此外,停电的原因也不太可能。我说得对吗?
# free -m
             total       used       free     shared    buffers     cached
Mem:          2012       1355        657          0         40        627
-/+ buffers/cache:        687       1325
Swap:         2047        129       1918
mysql> show profile;
+--------------------------------+----------+
| Status                         | Duration |
+--------------------------------+----------+
| starting                       | 0.000020 |
| checking query cache for query | 0.000111 |
| checking permissions           | 0.000003 |
| checking permissions           | 0.000001 |
| checking permissions           | 0.000002 |
| checking permissions           | 0.000001 |
| checking permissions           | 0.000003 |
| Opening tables                 | 0.000032 |
| System lock                    | 0.000004 |
| Table lock                     | 0.000006 |
| init                           | 0.000074 |
| optimizing                     | 0.000020 |
| statistics                     | 0.000171 |
| preparing                      | 0.000027 |
| Creating tmp table             | 0.000160 |
| executing                      | 0.000003 |
| Copying to tmp table           | 4.572503 |
| Creating sort index            | 0.009622 |
| Copying to group table         | 0.029744 |
| Removing duplicates            | 0.010745 |
| Sorting result                 | 0.000086 |
| Sending data                   | 0.004350 |
| end                            | 0.000008 |
| removing tmp table             | 0.001207 |
| end                            | 0.000005 |
| removing tmp table             | 0.000040 |
| end                            | 0.000004 |
| query end                      | 0.000003 |
| freeing items                  | 0.000018 |
| removing tmp table             | 0.000005 |
| freeing items                  | 0.002768 |
| logging slow query             | 0.000004 |
| logging slow query             | 0.000029 |
| cleaning up                    | 0.000006 |
+--------------------------------+----------+
34 rows in set (0.00 sec)