mysql一個時區引發的問題_MySQL
來源:懂視網
責編:小采
時間:2020-11-09 18:17:08
mysql一個時區引發的問題_MySQL
mysql一個時區引發的問題_MySQL:bitsCN.com mysql一個時區引發的問題 近期有客戶反饋了一個問題,在使用ERP 2BizBox的過程中,發現如下問題: 在查看財務模塊的報表損益表的時候,修改時間參數,損益報表的數據沒有改變。 經過多方查證,最終發現2BizBox 本身的查詢并沒有問題,而是由于客
導讀mysql一個時區引發的問題_MySQL:bitsCN.com mysql一個時區引發的問題 近期有客戶反饋了一個問題,在使用ERP 2BizBox的過程中,發現如下問題: 在查看財務模塊的報表損益表的時候,修改時間參數,損益報表的數據沒有改變。 經過多方查證,最終發現2BizBox 本身的查詢并沒有問題,而是由于客
bitsCN.com
mysql一個時區引發的問題 近期有客戶反饋了一個問題,在使用ERP 2BizBox的過程中,發現如下問題: 在查看財務模塊的報表損益表的時候,修改時間參數,損益報表的數據沒有改變。

經過多方查證,最終發現2BizBox 本身的查詢并沒有問題,而是由于客戶修改了系統的默認時區導致的。 具體是什么問題,請聽我細細道來: 2BizBox在處理損益表的查詢的時候,由于涉及到了多個表的查詢,應該算是一個比較重的查詢,所以會首先從多個表里面把數據查詢下來,并緩存在一個臨時表里面;這樣下次在查詢的時候,會有一個查詢時間間隔的判斷,如果本次的查詢時間比上一次查詢的時間大的數值間隔小于3秒,就會從臨時表里面直接取出數據,這樣處理是為了防止同一個用戶同時多次查詢,給系統造成負擔。上一次的查詢時間保存在數據庫的,本次查詢時間就是系統的當前時間,這樣在正常的系統是可以穩定的執行的。那么如果服務器操作系統與數據的時區設置不一致的時候,就會有可能導致本次查詢的時間反而小于上次查詢時間,應此就會從臨時表里面去取數據,而不會更新臨時表的數據。 比如數據庫的時區是CST(UTC -6 hours),操作系統時區:CDT(UTC -5 hours),這樣就會導致系統的時間數據庫的時間一個小時。這樣如果在一次查詢之后,在改變查詢參數的時候,如果相隔的時間在一個小時之類,都不會更新數據,所以就出現了改變查詢參數而報表數據不變的情況。 解決的方法當然就很簡單:把mysql的時區和系統時區調整成一致。 作者 netcy bitsCN.com
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
mysql一個時區引發的問題_MySQL
mysql一個時區引發的問題_MySQL:bitsCN.com mysql一個時區引發的問題 近期有客戶反饋了一個問題,在使用ERP 2BizBox的過程中,發現如下問題: 在查看財務模塊的報表損益表的時候,修改時間參數,損益報表的數據沒有改變。 經過多方查證,最終發現2BizBox 本身的查詢并沒有問題,而是由于客