mysql排序,同樣的語句 查詢結果不一樣的問題


一個項目,某段數據順序出現異常導致運行異常。早期沒有問題,用開發版本也沒有問題,同樣的查詢排序語句在mysql客戶端執行也沒有問題。

這個排序不一致問題,這里記錄下。

 

如下查詢語句,根據‘order’字段 降序 排序的。

SELECT * FROM test.test_only ORDER BY `order` DESC

 

 

注:上圖非mysql客戶端正式運行結果,為方便說明的截圖。這個現象在項目中容易出現,但在客戶端中運行多次也沒出現。
問題:如上圖,同樣的sql查詢排序,得到的結果不一致。
原因:從圖中也沒清晰看出,兩次結果也是符合排序語句的,只是用於排序的字段存在重復,導致重復的部分存在隨機排序。
解決:在加一層排序即可。如:SELECT * FROM test.test_only ORDER BY `order` DESC,id DESC

 

 

 

 

延申:如上備注,這個問題在項目中容易出現,在mysql客戶端中沒有出現。

比較多的認為是緩存的原因:和數據庫系統算法有關。這邊的項目(禪道)情況 也存在與之相關,項目在開發環境中沒有問題,在生產環境中出現該問題。在生產環境中,早期也沒有問題。數據量變大后出現問題了,生產環境配置不高,因為系統僅公司內部使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM