成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊樹狀結構如何在數據庫中存儲

數據庫
昨天有人在QQ小組問起,無限分層的樹狀結構,數據量比較大,在一萬條以上,如何設計數據庫的結構。其實這是個老生常談的問題,一般的做法是有一個 pid字段,為了提高效率,還會有個FullPath字段。

昨天有人在QQ小組問起,無限分層的樹狀結構,數據量比較大,在一萬條以上,如何設計數據庫的結構。其實這是個老生常談的問題,一般的做法是有一個 pid字段,為了提高效率,還會有個FullPath字段。(一些人還設置一個層級字段,但我不知道這個字段有何作用),FullPath字段可以用 id-id-id….這種方式拼字符串存儲,這樣可以方便地用 like 語句進行查詢某個節點及其子節點。

曾經看到過另外一種存儲方式,利用了一般樹結構可以轉換二叉樹的這一做法,用二叉樹進行存儲,在數據量大的情況下,存儲讀效率比上述的常見方案更優些,所以特寫此文簡單介紹一番。

下圖說明了這種方案

如圖所示,在每個節點上,有left ,right兩個字段,我們看到,圖上從根節點順著子節點開始畫一條線,每深入一層left加一,到底后,right=left+1,然后順著節點回溯,right逐級加一,一直回到根節點。

如果要查詢某個節點及其子節點,比如 fruit 節點 ,條件為 where left between 2 and 11

要查某個節點的full path ,比如 banana,條件為 where left<8 and right >9

如果要插入某個節點,比如red yellow直接插入一個節點,則update left =left+2 where left>=7 ,update right=right+2 where right>7,然后 新節點的left rigt分別是 7,8。 刪除節點類似。

這種方式,因為id都是int型數據,加上索引后,讀的效率較高。而fullPath字段的方案查詢時候用的是字符串操作like,效率較低。

在內存中,如果要還原樹狀結構,即在每個節點上增加pid屬性和children屬性,則稍微麻煩些,可以如下操作:

  1. 按left between x and y order by left 取數據
  2. 順序遍歷數據,如果left=上一個Left+1,則是上一個節點的子節點,設置兩個對象的父子關系,如果發生跳號,則是上一個節點的兄弟節點。

OK,大致的方案就介紹到這里

原文鏈接:http://www.cnblogs.com/honghuamin/archive/2011/07/24/2115635.html

【編輯推薦】

  1. SQL Server如何動態生成分區腳本
  2. 手把手教你建立SQL數據庫的表分區
  3. 說說抽象SQL(參數化)的查詢
  4. 淺述遠程Service Broker的實現
  5. 自己動手豐衣足食,DIY SQL字符串分解函數Split
責任編輯:艾婧 來源: 博客園
相關推薦

2018-01-26 13:28:48

數據庫數據重復數據庫清理

2024-05-26 10:29:29

2017-10-17 10:34:16

數據中心混合存儲

2009-10-27 16:36:07

Oracle如何解鎖

2011-05-25 13:37:15

數據庫

2021-03-01 10:20:52

存儲

2009-06-01 09:57:43

netbeans連接數netbeans數據庫netbeans連接m

2021-02-22 10:37:47

存儲Prometheus

2011-03-03 10:00:14

ProFTPD建立MySQL

2024-07-30 08:00:00

Kubernetes數據庫

2018-04-12 11:20:16

MySQLmybatisJava

2011-03-11 13:26:23

SQL Server數導入數據

2017-09-26 13:35:40

Mysql數據庫設計樹狀數據

2023-09-05 08:40:57

刪除數據庫Oracle

2010-10-09 10:29:29

MySQL外鍵

2020-11-16 08:56:02

Python

2023-01-06 08:31:53

數據庫基準測試

2023-01-26 00:18:53

云原生數據庫云資源

2021-10-28 19:28:04

數據庫開發Spring

2024-10-12 15:29:56

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产99久久精品一区二区永久免费 | 国产精品久久国产精品 | 在线a视频网站 | 午夜精品久久久久久不卡欧美一级 | 国产精品99精品久久免费 | 日韩av一区二区在线观看 | 久久躁日日躁aaaaxxxx | 久久最新精品 | 精品美女视频在线观看免费软件 | 亚洲国产精品成人综合久久久 | 国产精品污www在线观看 | av先锋资源 | 久久国产欧美日韩精品 | 亚洲网视频 | 日韩av啪啪网站大全免费观看 | 四虎最新地址 | 中文字幕精品视频 | 久久最新 | 精品亚洲一区二区三区 | 欧美大片一区 | 日韩精品一区二区三区久久 | 国产精品三级久久久久久电影 | 成av人电影在线 | 色婷婷激情综合 | 久久久久国产精品一区 | 亚洲天堂一区 | 亚洲一区二区精品 | 久久久精品国产 | 超碰最新在线 | 亚洲一区二区在线播放 | 日本一区二区视频 | 欧美日韩一区在线 | 男女黄网站 | 成人免费视频观看视频 | 精品久久久网站 | 精品一区二区三区在线观看国产 | 亚洲国产精品一区二区三区 | 欧美一区二区精品 | 天天干.com | 国产一区二区三区四区五区3d | 日韩精品在线免费观看 |