检索数据库数据需要几分钟

时间:2016-04-18 00:14:51

标签: java

我创建了一个REST API来处理搜索目录应用程序的基本休息功能。用户可以通过POST提交搜索查询,并将查询提交给MYSQL表。这会得到处理,结果会在一小时后通过Feed通过单独的应用程序发送。 我遇到的问题是,有几个用户可以提交数千个查询和GET来为用户检索这些查询,向DB提出简单请求,但需要很长时间来制定响应。当响应是单个字符串查询的简单列表时,它在几秒钟内完美地工作。现在,响应将每个查询包含在自己的json对象中,并包含其他元数据,并检索完整的对象数组。我知道它不应该花这么长时间,所以也许有关如何创建json的想法可能有所帮助。

            while (rs.next()){
                iquery = new Query();

                if (rs.isBeforeFirst() ) {    
                     System.out.println("No data"); 
                     qExists = "";
                } 
                System.out.println(rs.getString(1));

                QueryList.add(rs.getString(2));
                query.setqueryRule(rs.getString(2));
                query.setqueryName(rs.getString(1));
                if(rs.getTimestamp(5) != null){
                    query.setqueryExpiration(rs.getTimestamp(5));
                }else {
                    Thread.sleep(100);
                }


                query.setqueryID(rs.getString(3));
                query.setqueryGUD(rs.getString(4));
                query.setqueryCreated(rs.getTimestamp(6));
                if(rs.getTimestamp(7) != null){
                    query.setqueryModified(rs.getTimestamp(7));
                }else {
                    Thread.sleep(100);
                }


                query.toString();
                QueryList.add(query);       


            }
            GreetingController.ResponseID = 1;
            return QueryList;

类Query但它具有我设置的所有这些不同的属性,如图所示。但由于某些原因,50000个查询需要很长时间才能作为示例。我在下面显示单个查询所需的示例响应;

      "queries":[
     {
        "rule":"apple",
        "id":"y56473",
        "gid":"5bfufiddsd",
        "description":"apple's latest sneak peeks",
        "created":"2016-02-15T19:43:34Z",
        "modified":"2016-02-15T19:43:34Z",
        "expires":"2016-06-13T19:43:34Z"
     },

任何想法都赞赏。

修改

MYSQL响应时间:

我运行了数据库查询,它实际上就像1-2秒。

id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra
'1', 'SIMPLE', 'f', 'ref', 'idx_', '4', 'const', '15727', 'Using where'
'1', 'SIMPLE', 'd', 'const', 'PRIMARY', 'PRIMARY', '4', 'const', '1', 'Using index'

0 个答案:

没有答案