簡體   English   中英

我該如何加快與SQL在線數據庫的連接(“配對”速度,而不是查詢速度)?

[英]What can i do to speed up the connection (“pairing” speed, not query speed) to my SQL online database?

這來自Windows窗體應用程序的“更新端口”功能,該功能用於切換數據庫中的布爾值,以便在ESP8266上更新值。 從按下按鈕直到ESP檢測到更改,等待時間約為6秒。 我已經確定最慢的部分是嘗試重新連接時,因為在建立連接后很快就會執行響應按鈕按下所需的所有3個請求。 有沒有辦法可以減少連接期間的響應時間?

private void button1_Click(object sender, EventArgs e)
        {
            toggleState("1");
        }

private void toggleState(string _utgang)
        {
            bool? state = cmd("SELECT Status FROM Traverskran WHERE Utgang = " + _utgang);
            if (state != null)
            {
                state = !state;
                cmd("UPDATE Traverskran SET Status = " + state.ToString() + " WHERE Utgang = " + _utgang);
            }
            updatePortStats();//Differentt function that does the same as cmd() but sends "SELECT * FROM Traverskran" and dumps it into a textBox
        }

private bool? cmd(string query)
        {
            string connectionString = ("server=" + url + ";" + "username=" + username + ";" + "password=" + password + ";" + "database=" + databaseName + ";");
            connection = new MySqlConnection(connectionString);
            MySqlCommand command = new MySqlCommand(query, connection);
            command.CommandTimeout = 60;

        try
        {
            connection.Open();
            MySqlDataReader reader = command.ExecuteReader();
            if (reader.HasRows)
            {
                reader.Read();
                bool? result = (reader.GetString(0) == "True");
                connection.Close();
                return result;
            }
            connection.Close();
            return null;
        }
        catch (Exception e1)
        {
            connection.Close();
            return null;
        }
    }

不要為每次按下按鈕創建新的連接。 打開窗體時,請打開連接,然后在按下按鈕時使用它來執行所需的命令。

MySQL Connector / NET有一個錯誤使打開第一個連接(或所有連接,如果禁用了池)的速度變慢: bug 80030

看起來該錯誤尚未得到修復(在8.0.10-rc中); 作為解決方法,您可以切換到MySqlConnector (一種OSS高性能替代產品)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM