1. 程式人生 > >根據時間排序分頁查詢導致部分資料丟失原因

根據時間排序分頁查詢導致部分資料丟失原因

場景:

根據時間排序分頁查詢交易記錄表時,查總數沒問題,但是從一頁到下一頁的時候,在每頁分隔的地方可能會出現記錄部分丟失。

分析:

SELECT id, orderNo, addTime
FROM deal_tabORDER BY addTime DESC
LIMIT 1,20

如果資料庫存入時間最低單位到秒,那麼在交易多的時候表中會出現多筆在同一時間生成的訂單,當以時間排序時,資料庫難以判斷時間先後,當這種無法分辨的記錄出現在兩頁分隔的地段,在分頁時可能會導致某一/幾筆訂單被“隱藏”的現象,在顯示記錄的時候就看不到了。

解決:

1、第一種解決辦法,當然存入資料庫的時間欄位以毫秒數為最小單位可極大可能避免這種情況。

2、當某一時刻交易量極大的時候,甚至出現毫秒數都一樣的訂單也是可能的,這時可以用另一個欄位來輔助排序,如自增長的id,絕不會重複,且按記錄進入資料表增大的。

SELECT id, orderNo, addTime
FROM deal_tabORDER BY addTime DESC, id
LIMIT 1,20

相關推薦

根據時間排序查詢導致部分資料丟失原因

場景:根據時間排序分頁查詢交易記錄表時,查總數沒問題,但是從一頁到下一頁的時候,在每頁分隔的地方可能會出現記錄部分丟失。分析:SELECT id, orderNo, addTime FROM deal_

Oracle (05)外來鍵約束.序列.索引.檢視.查詢技術.排序查詢.資料庫表格設計正規化

外來鍵約束 (完整性約束)(fk) ***** 牽扯到兩個表格: 概念: 1. 外來鍵約束, 是存在兩個表格的操作 ! 2. 一張表格我們稱為主表(父表) , 另一張叫做從表(子表) , 定義了外來鍵約束的表格屬於從表 ! 3. 從表的外來鍵欄位, 是在參考主表中的主鍵

MySQL按時間排序問題

在按時間排序進行分頁的時候,遇見了這樣的問題。在查詢所有的資料,並沒有重複的資料出現,但是按時間排序,分頁後有重複的資料。dodo不知道大家有沒有遇見過。建表是這樣的:然後查詢這張表使用者邀請表,並按建

大資料量實時統計排序查詢 優化總結

大資料量實時統計排序分頁查詢(併發數較小時)  的瓶頸不是函式(count,sum等)執行, 不是having, 也不是order by,甚至不是表join, 導致慢的原因就在於“資料量太大本身” 化整為零 就是將表劃分為M份相互獨立的部分,可以是分表,也可以是不分表

oracle排序查詢與不排序

oracle分頁有通用寫法,假設一頁5行select * from ( select t.,rownum from ( select from table1 where condition order by column) t ) where rownum&g

去重的同時根據時間排序

select * from (SELECT max(a.“type”) as type,max(a.workspace_type) as workspace_type,max(a.description) as description,workspace_object_id,max(crea

mongodb查詢排序

字符 star skip 相對 代碼 php代碼 this post 倒序 mongodb代碼 根據時間倒序,查看10條 db.表名.find({"_id":"xxx"}).sort({"inserted":-1}).limit(10).skip(1)    相對的p

oracle查詢資料重複問題、排序陷阱

select * from (select rownum as rn, ab.* from (SELECT t.id, e.ehr_id, nh_code,

SpringBoot:SpringData JPA:進階查詢—JPQL/原生SQL查詢處理、部分欄位對映查詢

上一篇介紹了入門基礎篇SpringDataJPA訪問資料庫。本篇介紹SpringDataJPA進一步的定製化查詢,使用JPQL或者SQL進行查詢、部分欄位對映、分頁等。本文儘量以簡單的建模與程式碼進行展示操作,文章比較長,包含查詢的方方面面。如果能耐心看完這篇文章,你應該能使用SpringDataJ

mysql 查詢limit中偏移量offset過大導致效能問題

      在業務中經常會遇到關於分頁的需求,這就會經常會用到MySQL中的limit offset,rows來分段取出每頁中需要的資料。但是當資料量足夠大的時候,limit條件中的偏移量offset越大就越會導致效能問題,導致查詢耗時增加嚴重。先看一下測試:

spring data jpa 多表UNION ALL查詢按條件排序處理:未搜到方法,解決後記錄:2018年11月13日15:22:00

需求:Mysql資料庫 有不同屬性的兩張表,需要進行按某個條件查詢,結果合併排序分頁。 讓產品把兩個表分成兩段展示各查各的,分開來。 產品經理說能實現:產品寫sql 聯合查詢, A UNION AL

mongodb java增刪該查和模糊、排序查詢

package mongodb; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.regex.Pattern; import com.mong

【JqGrid】JqGrid使用後臺+查詢條件+排序

最近做專案時要用到jqGrid,先學習了一下jqGrid的使用方法,現總結如下,先從基本的說起: 1、資料顯示:jqGrid可以解析的資料有很多種,如xml、json等,在這個專案中主要用的就是json資料解析,JqGrid查詢時和後臺互動是很簡單的,但是必須注意幾個地方,

淺談ORDER排序對HIBERNATE查詢的影響

    hql = hql + " ORDER BY isSystem";         hql4Tot =hql4Tot+" ORDER BY isSystem";                  Query query = this.getHibernateTemp

AdminLTE-master很好用的查詢排序模版,配置如下文所示

<link rel="stylesheet" href="{{ asset('/AdminLTE-master/plugins/datatables/dataTables.bootstrap.css') }}"> <link rel="stylesheet

Mybatis與miniui的結合,Mybatis排序、miniui查詢、miniui載入等問題

場景描述:        在專案使用miniui查詢資料展示的時候,進行分頁展示。但是在分頁查詢的過程中,發現miniui的ajax傳到後臺的引數有pageIndex、pageSize、sortField、sortOrder引數,而在每次查詢的時候,資料總數是該次分頁查詢的總

datatables表格外掛實現前後端排序++條件查詢

1、在頁面中引入datatables需要的js及css檔案,定義一個表格 <link rel="stylesheet" href="/script/libs/DataTables/datatables.min.css" type="text/css" />

EF實現查詢+條件查詢+排序

先來看看幾個LINQ to SQL的幾個函式。  Take     說明:獲取集合的前n個元素;延遲。即只返回限定數量的結果集。     var q = (     from e in db.Emp

SQLlite(WebSQL)如何排序查詢(SQLlite語法)

SELECT * FROM Table ORDER BY ID DESC Limit 10,9 limit語義:跳過10行,取9行 參考: SQLite的limit用法 如果我要去11-20的Account表的資料Select * From Account Li

HBase多條件及查詢的一些方法

nosql數據庫 應用場景 實現簡單 信息 byte 多條 多個 不可用 寫性能 HBase是Apache Hadoop生態系統中的重要一員,它的海量數據存儲能力,超高的數據讀寫性能,以及優秀的可擴展性使之成為最受歡迎的NoSQL數據庫之一。它超強的插入和讀取性能與它的數據