關於作數據同步跑批時遇到的奇葩狀況

最近在作一個數據同步的跑批任務的時候,本身和測試人員這邊都進行了測試沒什麼問題,可是上線後,發現數據量少了20萬,線上查詢的是76萬多,可是咱們本身庫裏面卻只有46萬多,通過數據對比和摸索,發現有至少2個合同,從mysql的客戶端裏面是能夠查詢到的,可是代碼裏面去查詢獲取一個List<String>集合裏面,用contains判斷是否存在,,存則打印日誌,可是通過屢次發現仍然沒有打印對應的日誌,又加入了存在的數據看是否存在,結果存在的數據的日誌有打印,試驗的2個未打印。mysql

如圖可見個人SQL在mybatis裏面是很簡單明瞭的,sql

 

可是打印出來的數據的總量也是對的,就是不包含我驗證的2個數據,可是客戶端就是能查到mybatis

 

 

 

 

後通過一些列的排查和驗證,測試,花費了2天的時間,終於發現,是個人SQL中,查詢的時候加上distinct就會這樣,去掉distincet就行了,驗證的幾個合同號也存在了,存入庫的總的數據量也正常了,變成了76萬多了。測試

可是這個現象的緣由,我是沒弄太明白,distinct個人理解就是一個去重的,爲何會影響我查詢數據?並且我在本地和測試環境走的時候,都是20多萬的數據,走的都是正常的,線上70多萬數據就出現這種問題,很奇怪,但願路過的大神可以解答一下~~~,感謝感謝!!!日誌

相關文章
相關標籤/搜索