程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql一個時區引發的問題

mysql一個時區引發的問題

編輯:MySQL綜合教程

mysql一個時區引發的問題   近期有客戶反饋了一個問題,在使用ERP 2BizBox的過程中,發現如下問題:   在查看財務模塊的報表損益表的時候,修改時間參數,損益報表的數據沒有改變。

  經過多方查證,最終發現2BizBox 本身的查詢並沒有問題,而是由於客戶修改了系統的默認時區導致的。   具體是什麼問題,請聽我細細道來:   www.2cto.com   2BizBox在處理損益表的查詢的時候,由於涉及到了多個表的查詢,應該算是一個比較重的查詢,所以會首先從多個表裡面把數據查詢下來,並緩存在一個臨時表裡面;這樣下次在查詢的時候,會有一個查詢時間間隔的判斷,如果本次的查詢時間比上一次查詢的時間大的數值間隔小於3秒,就會從臨時表裡面直接取出數據,這樣處理是為了防止同一個用戶同時多次查詢,給系統造成負擔。上一次的查詢時間保存在數據庫的,本次查詢時間就是系統的當前時間,這樣在正常的系統是可以穩定的執行的。那麼如果服務器操作系統與數據的時區設置不一致的時候,就會有可能導致本次查詢的時間反而小於上次查詢時間,應此就會從臨時表裡面去取數據,而不會更新臨時表的數據。   比如數據庫的時區是CST(UTC -6 hours),操作系統時區:CDT(UTC -5 hours),這樣就會導致系統的時間數據庫的時間一個小時。這樣如果在一次查詢之後,在改變查詢參數的時候,如果相隔的時間在一個小時之類,都不會更新數據,所以就出現了改變查詢參數而報表數據不變的情況。   解決的方法當然就很簡單:把mysql的時區和系統時區調整成一致。     作者 netcy

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved