偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

關于數(shù)據(jù)庫水平切分中分頁查詢問題的解決方案

數(shù)據(jù)庫 SQL Server
本文我們主要介紹了數(shù)據(jù)庫水平切分中分頁查詢的問題的解決方案,希望本次的介紹能夠對您有所幫助。

數(shù)據(jù)庫水平切分中分頁查詢的問題是本文要介紹的主要內(nèi)容。接下來我們通過一個例子來說明:昨天淘寶的同事問了我一個技術培訓上講師問的問題:我們對數(shù)據(jù)庫關于商品的表放在了2個庫,分別是A庫和B庫 ,每個庫1張表,然后將id為奇數(shù)的放到A庫中,id為偶數(shù)的放到B庫中,現(xiàn)在需要查詢價格在100-200之間的商品,并根據(jù)銷量來排序,請給出具體的查詢方案,然后總結這個方案有什么缺點。

1.保證查詢結果正確性的方式:

比如查詢第1-20條記錄的時候,就得在A庫中執(zhí)行

 

  1. select*  
  2.  
  3. fromxxx  
  4.  
  5. wherexxx.price>=100and  
  6.  
  7. xxx.price<=200  
  8.  
  9. orderbyxxx.sales_volume  
  10.  
  11. limit0,20 

 

然后B庫也同樣執(zhí)行這樣的SQL,***在程序中將2個數(shù)據(jù)庫返回的結果作一次合并,再取前20條返回給用戶

但是這樣就帶來一個問題,你是不知道到底前20的數(shù)據(jù)是怎么分布的,是10條在A庫,10條在B庫,還是15條在A庫,5條在B庫,當用戶翻到第二頁的時候,就得在A庫中查詢前40條記錄,B庫中也查詢前40條記錄出來了...越是后面的頁數(shù),需要查詢的量就越大(PS:當然你可以忽悠自己說絕大部分用戶最多就看前3頁的結果)

2.保證性能的方式:

這個就隨意得多了,為了保證性能,正確性是不太可能保證的,可以每次在A庫查10條,B庫查10條,然后直接返回,結果肯定和實際的結果有出入,但相差不至太多,不是每個用戶都會發(fā)現(xiàn)第2頁的商品可能出現(xiàn)銷量比第1頁的商品銷量還要大的情況。

以上兩種方法都各有優(yōu)缺點,但***的結果可能都不是我們想要的,可是問題出在哪?貌似只有這2種方法了。

其實這里涉及到的是應該如何去分庫的問題,如果結果是按id排序的話,這樣分庫顯然是沒問題的,但如果是按銷量排序的話,那數(shù)據(jù)庫分庫的時候其實應該按銷量來切分,比如銷量在100以內(nèi)的放到A庫,銷量在100-1000的放到B庫,這樣查詢起來就輕松多了,最關鍵的就是要知道,我們分庫的規(guī)則應該怎么去設定。

關于數(shù)據(jù)庫水平切分中分頁查詢的問題的解決方案就介紹到這里了,希望本次的介紹能夠對您有所幫助。

【編輯推薦】

  1. 關于Oracle數(shù)據(jù)庫閃回個性的詳細介紹
  2. Oracle數(shù)據(jù)庫對DDL語句和DML語句的事務管理
  3. Oracle數(shù)據(jù)庫啟動參數(shù)文件及相關SQL語句簡介
  4. Oracle數(shù)據(jù)庫的幾種文件及表空間數(shù)據(jù)塊的知識簡介
  5. Oracle數(shù)據(jù)庫查詢登錄用戶名所屬表空間及其使用情況
責任編輯:趙鵬 來源: CSDN博客
相關推薦

2009-11-18 16:10:00

2011-03-07 16:42:05

MySQL數(shù)據(jù)庫安全

2011-07-26 16:05:19

Oracle數(shù)據(jù)庫服務器

2011-03-28 13:11:18

MySQL數(shù)據(jù)庫安全

2011-03-03 18:09:14

2010-05-27 18:24:09

MySQL數(shù)據(jù)庫密碼

2018-03-26 12:58:52

數(shù)據(jù)庫OracleMySQL

2011-01-21 09:43:10

安恒數(shù)據(jù)庫安全安全審計

2011-03-24 15:41:42

數(shù)據(jù)庫

2010-05-13 10:27:24

MySQL數(shù)據(jù)庫

2011-08-23 10:02:26

Oracle數(shù)據(jù)庫存儲過程掛死

2011-08-03 14:02:02

數(shù)據(jù)庫連接ACCESS

2017-06-19 16:45:41

數(shù)據(jù)庫水平切分用戶中心

2021-10-04 09:14:18

ElasticSear深度分頁

2010-05-28 11:22:07

2018-12-29 14:26:58

物聯(lián)網(wǎng)IOT物聯(lián)網(wǎng)設備

2011-07-12 16:42:41

2010-09-15 09:50:55

2011-01-21 10:10:27

2024-02-06 07:56:20

數(shù)據(jù)庫分布式數(shù)據(jù)庫架構產(chǎn)品
點贊
收藏

51CTO技術棧公眾號