MySQL进程列表有太多进程。正常吗

时间:2018-11-30 13:22:07

标签: mysql asp.net web-services connection

我创建了一个Android应用,例如社交媒体应用。我正在使用ASP.NET Web服务来获取JSON数据或处理诸如INSERT,UPDATE,DELETE之类的数据。而且我正在使用MySQL数据库。

活动用户数约为2.5k,每天平均为1.5k。

无论如何,当我用“显示过程列表”控制过程列表时;在phpMyAdmin上,有很多过程;一些进程具有“睡眠”命令值。因此,这种情况会出现错误,例如降低应用程序速度,有时还会出现“ max_user_connections”。

因此,在完成Web Service上的数据库处理后,我关闭了所有连接,但是仍然存在该问题或错误。

[WebMethod]
public string ABC(int x, string y)
{
    using (con = new MySqlConnection(conString))
    {
        List<Profile> result= new List<Profile>();
        result.Add(new Profile
        {
            posts= ""
        });

        List<ClassA> resultA= new List<ClassA>();

        query= "SELECT COUNT(FollowId) FROM Followings WHERE FUserId = " + x;
        con.Open();
        cmd = new MySqlCommand(query, con);
        dr = cmd.ExecuteReader();
        string count = "0";
        while (dr.Read())
        {
            count = dr[0].ToString();
        }
        dr.Close();
        con.Close();

        query= "SELECT COUNT(FollowId) FROM Followings WHERE FollowingUserId = " + x;
        con.Open();
        cmd = new MySqlCommand(query, con);
        dr = cmd.ExecuteReader();
        string count2 = "0";
        while (dr.Read())
        {
            count2 = dr[0].ToString();
        }
        dr.Close();
        con.Close();

        query= "SELECT .... FROM Posts WHERE UserId = " + x+ " ORDER BY PostId DESC LIMIT 30";
        con.Open();
        cmd = new MySqlCommand(query, con);
        dr = cmd.ExecuteReader();
        int i;
        int count3 = 0;
        while (dr.Read())
        {
            count3++;
            i = 0;
            resultA.Add(new ClassA
            {
                postId = Convert.ToInt32(dr[i]),
                postUrl = dr[++i].ToString(),
                ... = Convert.ToInt32(dr[++i])

            });
        }
        dr.Close();
        con.Close();

        string json = "";
        if (resultA.Count > 0)
        {
            json = JsonConvert.SerializeObject(resultA);
        }

        result[0].posts = json;


        json = "";
        if (result.Count > 0)
        {
            json = JsonConvert.SerializeObject(result);
        }
        return json;
    }

}

这是我的网络方法的任何示例。我在哪里弄错了?

感谢您的答复。

0 个答案:

没有答案