我一直在調查我們的MySQL/C++應用程序的網絡性能。我發現我們的客戶端使用ASCII字面值從MYSQL C-Connector讀取所有值(整數,雙精度等)。這意味着服務器將數字作爲文本發送給客戶端(例如,int 123的字符串「123」)。我們在這個應用程序中的所有數據都由數值(整數和雙精度)組成,所以我想知道:我可以強制MySQL將數值作爲二進制傳輸嗎?
有沒有辦法強制MySQL服務器以二進制格式而不是ASCII格式傳輸數值?
我一直在調查我們的MySQL/C++應用程序的網絡性能。我發現我們的客戶端使用ASCII字面值從MYSQL C-Connector讀取所有值(整數,雙精度等)。這意味着服務器將數字作爲文本發送給客戶端(例如,int 123的字符串「123」)。我們在這個應用程序中的所有數據都由數值(整數和雙精度)組成,所以我想知道:我可以強制MySQL將數值作爲二進制傳輸嗎?
有沒有辦法強制MySQL服務器以二進制格式而不是ASCII格式傳輸數值?
使用壓縮連接。尋找UseCompression
在the docs
我考慮過這個,但看起來這個選項會導致很多不必要的轉換。即在服務器端:二進制到ASCII,然後壓縮;在客戶端:解壓縮,並從ASCII轉換爲二進制。如果我們可以放棄這4個操作,那麼我們會在服務器和客戶端節省寶貴的CPU週期。 – 2013-05-08 00:06:20
你對什麼是和不高效做出了一些非常大膽的假設。你有沒有在這裏做過任何基準測試,或者你只是在猜測? – duskwuff 2013-05-08 00:08:13
你是否啓用了壓縮的應用程序基準測試?在處理網絡時,通常瓶頸是物理鏈路,而不是壓縮/解壓縮(實際上這很常見)。你指的是什麼樣的網絡?一個千兆以太網光纖鏈路或一個鬆散的56k調制解調器連接?) – 2013-05-08 00:09:32
這並不一定意味着。這可能只意味着連接器正在將二進制文件轉換爲文本。 – EJP 2013-05-08 00:05:14
公平點,那麼有沒有辦法告訴連接器不要執行從二進制到文本的轉換? – 2013-05-08 00:07:54