无论查询是什么,有时它会延迟这么多

时间:2013-08-27 07:15:10

标签: java mysql centos

我在centos(6.2final),mysql 5.1.66和java jdk 1.6编程。

此代码获取服务器的结果。

public ArrayList confirm(String key, String string) {
        ArrayList tmp = null;

        try {
            PreparedStatement prep = null;
            try {
                prep = Local.prepareStatement("select distinct tags from tagDB where key=? and string!=?;");
            } catch (Exception e) {

            }

            if (prep != null) {
                prep.setString(1, key);
                prep.setString(2, string);

                int count = getRowCount(prep.executeQuery());
                if (count > 0) {
                    tmp = new ArrayList();
                    ResultSet rs = prep.executeQuery();
                    while (rs.next()) {
                        tmp.add(rs.getString("tags"));
                    }
                    return tmp;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return tmp;
    }

和服务器的db是好的。我想是的。

如果你想看mysql。我可以帮到你。

我的java日志在下面。

16:2:46:450, turnaround time :26

16:2:46:484, turnaround time :23

...

16:2:47:665, turnaround time :23

16:2:50:136, turnaround time :71

16:2:50:246, turnaround time :106

...

16:2:53:22, turnaround time :54

**16:2:58:131, turnaround time :5098**

16:2:58:157, turnaround time :22

...

16:2:58:325, turnaround time :23

**16:3:3:358, turnaround time :5028**

**16:3:8:423, turnaround time :5027**

16:3:9:525, turnaround time :22

...

16:3:10:248, turnaround time :64

**16:3:15:288, turnaround time :5032**

有时它会延迟5000毫秒。

所以我认为这是因为服务器的内存或缓冲区设置,如java的GC。

所以我编辑my.cnf(mysql的配置文件)。 关于maxconnection的大小,max_heap_table_size, max_tmp_table_size,thread_cache_size等。 (我无法调整thread_cache_size和某些表格的值。 my.cnf文件不会调整超过两个值....)

比什么都没发生。

mysql的慢查询日志无法获取任何内容。

......我做不了什么。所以请...并且非常感谢所有阅读....

这么多。祝大家过得愉快。

PS。我的英语不好......我知道。对此也很抱歉。^^;

0 个答案:

没有答案