當(dāng)前位置:首頁 > 公眾號精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀]當(dāng)我們發(fā)現(xiàn)SQL執(zhí)行很慢的時候,自然而然想到的就是加索引。

前言

當(dāng)我們發(fā)現(xiàn)SQL執(zhí)行很慢的時候,自然而然想到的就是加索引。對于范圍查詢,索引的底層結(jié)構(gòu)就是B+樹。今天我們一起來學(xué)習(xí)一下B+樹哈~

  • 樹簡介、樹種類
  • B-樹、B+樹簡介
  • B+樹插入
  • B+樹查找
  • B+樹刪除
  • B+樹經(jīng)典面試題

樹的簡介

樹的簡介

樹跟數(shù)組、鏈表、堆棧一樣,是一種數(shù)據(jù)結(jié)構(gòu)。它由有限個節(jié)點(diǎn),組成具有層次關(guān)系的集合。因?yàn)樗雌饋硐褚豢脴洌缘闷涿?。一顆普通的樹如下:

MySQL索引底層:B+樹詳解

樹是包含n(n為整數(shù),大于0)個結(jié)點(diǎn), n-1條邊的有窮集,它有以下特點(diǎn):

  • 每個結(jié)點(diǎn)或者無子結(jié)點(diǎn)或者只有有限個子結(jié)點(diǎn);
  • 有一個特殊的結(jié)點(diǎn),它沒有父結(jié)點(diǎn),稱為根結(jié)點(diǎn);
  • 每一個非根節(jié)點(diǎn)有且只有一個父節(jié)點(diǎn);
  • 樹里面沒有環(huán)路

一些有關(guān)于樹的概念:

  • 結(jié)點(diǎn)的度:一個結(jié)點(diǎn)含有的子結(jié)點(diǎn)個數(shù)稱為該結(jié)點(diǎn)的度;
  • 樹的度:一棵樹中,最大結(jié)點(diǎn)的度稱為樹的度;
  • 父結(jié)點(diǎn):若一個結(jié)點(diǎn)含有子結(jié)點(diǎn),則這個結(jié)點(diǎn)稱為其子結(jié)點(diǎn)的父結(jié)點(diǎn);
  • 深度:對于任意結(jié)點(diǎn)n,n的深度為從根到n的唯一路徑長,根結(jié)點(diǎn)的深度為0;
  • 高度:對于任意結(jié)點(diǎn)n,n的高度為從n到一片樹葉的最長路徑長,所有樹葉的高度為0;

樹的種類

MySQL索引底層:B+樹詳解

按照有序性,可以分為有序樹和無序樹:

  • 無序樹:樹中任意節(jié)點(diǎn)的子結(jié)點(diǎn)之間沒有順序關(guān)系
  • 有序樹:樹中任意節(jié)點(diǎn)的子結(jié)點(diǎn)之間有順序關(guān)系

按照節(jié)點(diǎn)包含子樹個數(shù),可以分為B樹和二叉樹,二叉樹可以分為以下幾種:

  • 二叉樹:每個節(jié)點(diǎn)最多含有兩個子樹的樹稱為二叉樹;
  • 二叉查找樹:首先它是一顆二叉樹,若左子樹不空,則左子樹上所有結(jié)點(diǎn)的值均小于它的根結(jié)點(diǎn)的值;若右子樹不空,則右子樹上所有結(jié)點(diǎn)的值均大于它的根結(jié)點(diǎn)的值;左、右子樹也分別為二叉排序樹;
  • 滿二叉樹:葉節(jié)點(diǎn)除外的所有節(jié)點(diǎn)均含有兩個子樹的樹被稱為滿二叉樹;
  • 完全二叉樹:如果一顆二叉樹除去最后一層節(jié)點(diǎn)為滿二叉樹,且最后一層的結(jié)點(diǎn)依次從左到右分布
  • 霍夫曼樹:帶權(quán)路徑最短的二叉樹。
  • 紅黑樹:紅黑樹是一顆特殊的二叉查找樹,每個節(jié)點(diǎn)都是黑色或者紅色,根節(jié)點(diǎn)、葉子節(jié)點(diǎn)是黑色。如果一個節(jié)點(diǎn)是紅色的,則它的子節(jié)點(diǎn)必須是黑色的。
  • 平衡二叉樹(AVL):一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,并且左右兩個子樹都是一棵平衡二叉樹

B-樹、B+樹簡介

B-樹 簡介

B-樹,也稱為B樹,是一種平衡的多叉樹(可以對比一下平衡二叉查找樹),它比較適用于對外查找??聪逻@幾個概念哈:

  • 階數(shù):一個節(jié)點(diǎn)最多有多少個孩子節(jié)點(diǎn)。(一般用字母m表示)
  • 關(guān)鍵字:節(jié)點(diǎn)上的數(shù)值就是關(guān)鍵字
  • 度:一個節(jié)點(diǎn)擁有的子節(jié)點(diǎn)的數(shù)量。

一顆m階的B-樹,有以下特征:

  • 根結(jié)點(diǎn)至少有兩個子女;
  • 每個非根節(jié)點(diǎn)所包含的關(guān)鍵字個數(shù) j 滿足:?m/2? - 1 <= j <= m - 1.(??表示向上取整)
  • 有k個關(guān)鍵字(關(guān)鍵字按遞增次序排列)的非葉結(jié)點(diǎn)恰好有k+1個孩子。
  • 所有的葉子結(jié)點(diǎn)都位于同一層。

一棵簡單的B-樹如下:

MySQL索引底層:B+樹詳解

B+ 樹簡介

B+樹是B-樹的變體,也是一顆多路搜索樹。一棵m階的B+樹主要有這些特點(diǎn):

  • 每個結(jié)點(diǎn)至多有m個子女;
  • 非根節(jié)點(diǎn)關(guān)鍵值個數(shù)范圍:?m/2? - 1 <= k <= m-1
  • 相鄰葉子節(jié)點(diǎn)是通過指針連起來的,并且是關(guān)鍵字大小排序的。

一顆3階的B+樹如下:

MySQL索引底層:B+樹詳解

B+樹和B-樹的主要區(qū)別如下:

  • B-樹內(nèi)部節(jié)點(diǎn)是保存數(shù)據(jù)的;而B+樹內(nèi)部節(jié)點(diǎn)是不保存數(shù)據(jù)的,只作索引作用,它的葉子節(jié)點(diǎn)才保存數(shù)據(jù)。
  • B+樹相鄰的葉子節(jié)點(diǎn)之間是通過鏈表指針連起來的,B-樹卻不是。
  • 查找過程中,B-樹在找到具體的數(shù)值以后就結(jié)束,而B+樹則需要通過索引找到葉子結(jié)點(diǎn)中的數(shù)據(jù)才結(jié)束
  • B-樹中任何一個關(guān)鍵字出現(xiàn)且只出現(xiàn)在一個結(jié)點(diǎn)中,而B+樹可以出現(xiàn)多次。

B+樹的插入

B+樹插入要記住這幾個步驟:

  • 1.B+樹插入都是在葉子結(jié)點(diǎn)進(jìn)行的,就是插入前,需要先找到要插入的葉子結(jié)點(diǎn)。
  • 2.如果被插入關(guān)鍵字的葉子節(jié)點(diǎn),當(dāng)前含有的關(guān)鍵字?jǐn)?shù)量是小于階數(shù)m,則直接插入。
  • 3.如果插入關(guān)鍵字后,葉子節(jié)點(diǎn)當(dāng)前含有的關(guān)鍵字?jǐn)?shù)目等于階數(shù)m,則插,該節(jié)點(diǎn)開始 「分裂」為兩個新的節(jié)點(diǎn),一個節(jié)點(diǎn)包含?m/2? 個關(guān)鍵字,另外一個關(guān)鍵字包含?m/2?個關(guān)鍵值。(?m/2?表示向下取整,?m/2?表示向上取整,如?3/2?=2)。
  • 4.分裂后,需要將第?m/2?的關(guān)鍵字上移到父結(jié)點(diǎn)。如果這時候父結(jié)點(diǎn)中包含的關(guān)鍵字個數(shù)小于m,則插入操作完成。
  • 5.分裂后,需要將?m/2?的關(guān)鍵字上移到父結(jié)點(diǎn)。如果父結(jié)點(diǎn)中包含的關(guān)鍵字個數(shù)等于m,則繼續(xù)分裂父結(jié)點(diǎn)。

以一顆4階的B+樹為例子吧,4階的話,關(guān)鍵值最多3(m-1)個。假設(shè)插入以下數(shù)據(jù)43,48,36,32,37,49,28.

  1. 在空樹中插入43

MySQL索引底層:B+樹詳解

這時候根結(jié)點(diǎn)就一個關(guān)鍵值,此時它是根結(jié)點(diǎn)也是葉子結(jié)點(diǎn)。

  1. 依次插入48,36

MySQL索引底層:B+樹詳解

這時候跟節(jié)點(diǎn)擁有3個關(guān)鍵字,已經(jīng)滿了

  1. 繼續(xù)插入 32,發(fā)現(xiàn)當(dāng)前節(jié)點(diǎn)關(guān)鍵字已經(jīng)不小于階數(shù)4了,于是分裂 第?4/2?=2(下標(biāo)0,1,2)個,也即43上移到父節(jié)點(diǎn)。

MySQL索引底層:B+樹詳解

  1. 繼續(xù)插入37,49,前節(jié)點(diǎn)關(guān)鍵字都是還沒滿的,直接插入,如下:

MySQL索引底層:B+樹詳解

  1. 最后插入28,發(fā)現(xiàn)當(dāng)前節(jié)點(diǎn)關(guān)鍵字也是不小于階數(shù)4了,于是分裂,于是分裂, 第 ?4/2?=2個,也就是36上移到父節(jié)點(diǎn),因父子節(jié)點(diǎn)只有2個關(guān)鍵值,還是小于4的,所以不用繼續(xù)分裂,插入完成

    MySQL索引底層:B+樹詳解

B+樹的查找

因?yàn)锽+樹的數(shù)據(jù)都是在葉子節(jié)點(diǎn)上的,內(nèi)部節(jié)點(diǎn)只是指針?biāo)饕淖饔?,因此,查找過程需要搜索到葉子節(jié)點(diǎn)上。還是以這顆B+樹為例吧:

MySQL索引底層:B+樹詳解

B+ 樹單值查詢

假設(shè)我們要查的值為32.

第一次磁盤 I/O,查找磁盤塊1,即根節(jié)點(diǎn)(36,43),因?yàn)?2小于36,因此訪問根節(jié)點(diǎn)的左邊第一個孩子節(jié)點(diǎn)

MySQL索引底層:B+樹詳解

第二次磁盤 I/O, 查找磁盤塊2,即根節(jié)點(diǎn)的第一個孩子節(jié)點(diǎn),獲得區(qū)間(28,32),遍歷即可得32.

MySQL索引底層:B+樹詳解

動態(tài)圖如下:

MySQL索引底層:B+樹詳解

B+ 樹范圍查詢

假設(shè)我們要查找區(qū)間 [32,40]區(qū)間的值.

第一步先訪問根節(jié)點(diǎn),發(fā)現(xiàn)區(qū)間的左端點(diǎn)32小于36,則訪問根節(jié)點(diǎn)的第一個左子樹(28,32);

MySQL索引底層:B+樹詳解

第二步訪問節(jié)點(diǎn)(28,32),找到32,于是開始遍歷鏈表,把[32,40]區(qū)間值找出來,這也是B+樹比B-樹高效的地方。

MySQL索引底層:B+樹詳解

B+樹的刪除

B+樹刪除關(guān)鍵字,分這幾種情況

  • 找到包含關(guān)鍵值的結(jié)點(diǎn),如果關(guān)鍵字個數(shù)大于?m/2?-1,直接刪除即可;
  • 找到包含關(guān)鍵值的結(jié)點(diǎn),如果關(guān)鍵字個數(shù)大于?m/2?-1,并且關(guān)鍵值是當(dāng)前節(jié)點(diǎn)的最大(小)值,并且該關(guān)鍵值存在父子節(jié)點(diǎn)中,那么刪除該關(guān)鍵字,同時需要相應(yīng)調(diào)整父節(jié)點(diǎn)的值。
  • 找到包含關(guān)鍵值的結(jié)點(diǎn),如果刪除該關(guān)鍵字后,關(guān)鍵字個數(shù)小于?m/2?,并且其兄弟結(jié)點(diǎn)有多余的關(guān)鍵字,則從其兄弟結(jié)點(diǎn)借用關(guān)鍵字
  • 找到包含關(guān)鍵值的結(jié)點(diǎn),如果刪除該關(guān)鍵字后,關(guān)鍵字個數(shù)小于?m/2?,并且其兄弟結(jié)點(diǎn)沒有多余的關(guān)鍵字,則與兄弟結(jié)點(diǎn)合并。

如果關(guān)鍵字個數(shù)大于?m/2?,直接刪除即可;

假設(shè)當(dāng)前有這么一顆5階的B+樹

MySQL索引底層:B+樹詳解

如果刪除22,因?yàn)殛P(guān)鍵字個數(shù)為3 > ?5/2?-1=2, 直接刪除(??表示向上取整的意思)

MySQL索引底層:B+樹詳解

如果關(guān)鍵字個數(shù)大于?m/2?-1,并且刪除的關(guān)鍵字存在于父子節(jié)點(diǎn)中,那么需要相應(yīng)調(diào)整父子節(jié)點(diǎn)的值

MySQL索引底層:B+樹詳解

如果刪除20,因?yàn)殛P(guān)鍵字個數(shù)為3 > ?5/2?-1=2,并且20是當(dāng)前節(jié)點(diǎn)的邊界值,且存在父子節(jié)點(diǎn)中,所以刪除后,其父子節(jié)點(diǎn)也要響應(yīng)調(diào)整。

MySQL索引底層:B+樹詳解

如果刪除該關(guān)鍵字后,關(guān)鍵字個數(shù)小于?m/2?-1,兄弟節(jié)點(diǎn)可以借用

以下這顆5階的B+樹,

MySQL索引底層:B+樹詳解

如果刪除15,刪除關(guān)鍵字的結(jié)點(diǎn)只剩1個關(guān)鍵字,小于?5/2?-1=2,不滿足B+樹特點(diǎn),但是其兄弟節(jié)點(diǎn)擁有3個元素(7,8,9),可以借用9過來,如圖:

MySQL索引底層:B+樹詳解

在刪除關(guān)鍵字后,如果導(dǎo)致其結(jié)點(diǎn)中關(guān)鍵字個數(shù)不足,并且兄弟結(jié)點(diǎn)沒有得借用的話,需要合并兄弟結(jié)點(diǎn)

以下這顆5階的B+樹:

MySQL索引底層:B+樹詳解

如果刪除關(guān)鍵字7,刪除關(guān)鍵字的結(jié)點(diǎn)只剩1個關(guān)鍵字,小于?5/2?-1=2,不滿足B+樹特點(diǎn),并且兄弟結(jié)點(diǎn)沒法借用,因此發(fā)生合并,如下:

MySQL索引底層:B+樹詳解

主要流程醬紫:

  • 因?yàn)?被刪掉后,只剩一個8的關(guān)鍵字,不滿足B+樹特點(diǎn)(?m/2?-1<=關(guān)鍵字<=m-1)。
  • 并且沒有兄弟結(jié)點(diǎn)關(guān)鍵字借用,因此8與前面的兄弟結(jié)點(diǎn)結(jié)合。
  • 被刪關(guān)鍵字結(jié)點(diǎn)的父節(jié)點(diǎn),7索引也被刪掉了,只剩一個9,并且其右兄弟結(jié)點(diǎn)(18,20)只有兩個關(guān)鍵字,也是沒得借,因此在此合并。
  • 被刪關(guān)鍵字結(jié)點(diǎn)的父子節(jié)點(diǎn),也和其兄弟結(jié)點(diǎn)合并后,只剩一個子樹分支,因此根節(jié)點(diǎn)(16)也下移了。

所以刪除關(guān)鍵字7后的結(jié)果如下:

MySQL索引底層:B+樹詳解

B+樹經(jīng)典面試題

  • InnoDB一棵B+樹可以存放多少行數(shù)據(jù)?
  • 為什么索引結(jié)構(gòu)默認(rèn)使用B+樹,而不是hash,二叉樹,紅黑樹,B-樹?
  • B-樹和B+樹的區(qū)別

InnoDB一棵B+樹可以存放多少行數(shù)據(jù)?

這個問題的簡單回答是:約2千萬行。

  • 在計(jì)算機(jī)中,磁盤存儲數(shù)據(jù)最小單元是扇區(qū),一個扇區(qū)的大小是512字節(jié)。
  • 文件系統(tǒng)中,最小單位是塊,一個塊大小就是4k;
  • InnoDB存儲引擎最小儲存單元是頁,一頁大小就是16k。
MySQL索引底層:B+樹詳解

因?yàn)锽+樹葉子存的是數(shù)據(jù),內(nèi)部節(jié)點(diǎn)存的是鍵值+指針。索引組織表通過非葉子節(jié)點(diǎn)的二分查找法以及指針確定數(shù)據(jù)在哪個頁中,進(jìn)而再去數(shù)據(jù)頁中找到需要的數(shù)據(jù);

MySQL索引底層:B+樹詳解

假設(shè)B+樹的高度為2的話,即有一個根結(jié)點(diǎn)和若干個葉子結(jié)點(diǎn)。這棵B+樹的存放總記錄數(shù)為=根結(jié)點(diǎn)指針數(shù)*單個葉子節(jié)點(diǎn)記錄行數(shù)。

  • 如果一行記錄的數(shù)據(jù)大小為1k,那么單個葉子節(jié)點(diǎn)可以存的記錄數(shù) =16k/1k =16.
  • 非葉子節(jié)點(diǎn)內(nèi)存放多少指針呢?我們假設(shè)主鍵ID為bigint類型,長度為8字節(jié),而指針大小在InnoDB源碼中設(shè)置為6字節(jié),所以就是8+6=14字節(jié),16k/14B =16*1024B/14B = 1170

因此,一棵高度為2的B+樹,能存放1170 * 16=18720條這樣的數(shù)據(jù)記錄。同理一棵高度為3的B+樹,能存放1170 *1170 *16 =21902400,也就是說,可以存放兩千萬左右的記錄。B+樹高度一般為1-3層,已經(jīng)滿足千萬級別的數(shù)據(jù)存儲。

為什么索引結(jié)構(gòu)默認(rèn)使用B+樹,而不是B-Tree,Hash哈希,二叉樹,紅黑樹?

簡單版回答如下:

  • Hash哈希,只適合等值查詢,不適合范圍查詢。
  • 一般二叉樹,可能會特殊化為一個鏈表,相當(dāng)于全表掃描。
  • 紅黑樹,是一種特化的平衡二叉樹,MySQL 數(shù)據(jù)量很大的時候,索引的體積也會很大,內(nèi)存放不下的而從磁盤讀取,樹的層次太高的話,讀取磁盤的次數(shù)就多了。
  • B-Tree,葉子節(jié)點(diǎn)和非葉子節(jié)點(diǎn)都保存數(shù)據(jù),相同的數(shù)據(jù)量,B+樹更矮壯,也是就說,相同的數(shù)據(jù)量,B+樹數(shù)據(jù)結(jié)構(gòu),查詢磁盤的次數(shù)會更少。

B-樹和B+樹的區(qū)別

  • B-樹內(nèi)部節(jié)點(diǎn)是保存數(shù)據(jù)的;而B+樹內(nèi)部節(jié)點(diǎn)是不保存數(shù)據(jù)的,只作索引作用,它的葉子節(jié)點(diǎn)才保存數(shù)據(jù)。
  • B+樹相鄰的葉子節(jié)點(diǎn)之間是通過鏈表指針連起來的,B-樹卻不是。
  • 查找過程中,B-樹在找到具體的數(shù)值以后就結(jié)束,而B+樹則需要通過索引找到葉子結(jié)點(diǎn)中的數(shù)據(jù)才結(jié)束
  • B-樹中任何一個關(guān)鍵字出現(xiàn)且只出現(xiàn)在一個結(jié)點(diǎn)中,而B+樹可以出現(xiàn)多次。

參考與感謝

  • B+樹看這一篇就夠了 [1]
  • B樹和B+樹的插入、刪除圖文詳解 [2]
  • InnoDB一棵B+樹可以存放多少行數(shù)據(jù)? [3]

Reference

[1]

B+樹看這一篇就夠了: https://zhuanlan.zhihu.com/p/149287061

[2]

B樹和B+樹的插入、刪除圖文詳解: https://www.cnblogs.com/nullzx/p/8729425.html

[3]

InnoDB一棵B+樹可以存放多少行數(shù)據(jù)?: https://www.cnblogs.com/leefreeman/p/8315844.html


免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉