哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

抽絲剝繭探窮境!一次數(shù)據(jù)庫JSON字段的深度使用實(shí)踐

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2026-03-18 11:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

背景

在我們系統(tǒng)中,承接多種行業(yè),多種商家的,多個(gè)業(yè)務(wù)條線,不同場(chǎng)景的的不同業(yè)務(wù)訴求,在實(shí)現(xiàn)上將個(gè)性和通用字段隔離,通用字段是所有條線通用邏輯所共用的標(biāo)準(zhǔn)字段,對(duì)于個(gè)別條線的個(gè)性化訴求,則通過個(gè)性化擴(kuò)展字段來實(shí)現(xiàn)。

通用字段,作用于通用邏輯,所有條線走到相應(yīng)功能時(shí),會(huì)對(duì)通用字段讀寫。而對(duì)于個(gè)性擴(kuò)展字段而言,只有用到個(gè)性化功能時(shí),才會(huì)對(duì)個(gè)性化擴(kuò)展字段進(jìn)行賦值。在數(shù)據(jù)庫持久化存儲(chǔ)上,用不到該個(gè)性化擴(kuò)展字段時(shí),該字段無需存儲(chǔ),不占用額外存儲(chǔ)空間。

wKgZO2m6GEyASylUAAgwWgZtkFk500.png

在表結(jié)構(gòu)上,使用JSON類型字段進(jìn)行存儲(chǔ)。在日常擴(kuò)展字段的開發(fā)過程中,不可避免的用到JSON函數(shù)進(jìn)行字段處理。

?

常用JSON函數(shù)一覽

Name Description
-> Return value from JSON column after evaluating path; equivalent to JSON_EXTRACT().
->> Return value from JSON column after evaluating path and unquoting the result; equivalent to JSON_UNQUOTE(JSON_EXTRACT()).
JSON_APPEND() Append data to JSON document
JSON_ARRAY() Create JSON array
JSON_ARRAY_APPEND() Append data to JSON document
JSON_ARRAY_INSERT() Insert into JSON array
JSON_CONTAINS() Whether JSON document contains specific object at path
JSON_CONTAINS_PATH() Whether JSON document contains any data at path
JSON_DEPTH() Maximum depth of JSON document
JSON_EXTRACT() Return data from JSON document
JSON_INSERT() Insert data into JSON document
JSON_KEYS() Array of keys from JSON document
JSON_LENGTH() Number of elements in JSON document
JSON_MERGE() Merge JSON documents, preserving duplicate keys. Deprecated synonym for JSON_MERGE_PRESERVE()
JSON_MERGE_PATCH() Merge JSON documents, replacing values of duplicate keys
JSON_MERGE_PRESERVE() Merge JSON documents, preserving duplicate keys
JSON_OBJECT() Create JSON object
JSON_PRETTY() Print a JSON document in human-readable format
JSON_QUOTE() Quote JSON document
JSON_REMOVE() Remove data from JSON document
JSON_REPLACE() Replace values in JSON document
JSON_SEARCH() Path to value within JSON document
JSON_SET() Insert data into JSON document
JSON_STORAGE_SIZE() Space used for storage of binary representation of a JSON document
JSON_TYPE() Type of JSON value
JSON_UNQUOTE() Unquote JSON value
JSON_VALID() Whether JSON value is valid

?

JSON字段實(shí)現(xiàn)項(xiàng)目場(chǎng)景訴求典型案例分析

JSON字段對(duì)我們系統(tǒng)來說并不陌生,有不少場(chǎng)景使用,下面有一些典型的使用場(chǎng)景案例先放出來作為JSON字段項(xiàng)目使用背景鋪墊一下。

?

擴(kuò)展字段的存儲(chǔ)和查詢

動(dòng)態(tài)擴(kuò)展查詢案例

在二手庫或逆向條件,有比較多的擴(kuò)展屬性,其他條線缺沒有這些屬性值,這些屬性以JSON擴(kuò)展的方式存儲(chǔ)。

下面是一個(gè)JSON擴(kuò)展字段的JSON數(shù)據(jù)示例:

{
    "ppCode": "PPDA4302865239B10F",
    "zoneNo": "STAGE-OUTBOUND",
    "zoneName": "出庫暫存區(qū)",
    "zoneType": "t",
    "extendMap": {
        "cid1": 13765,
        "cid2": 14192,
        "cid3": 14533,
        "deptId": "1",
        "jdFlag": 1,
        "symbol": 300,
        "brandId": 52368,
        "cbjPrice": 2034,
        "salesPin": "xumingchen",
        "commonType": 0,
        "wareSource": 100,
        "orderSource": "it100",
        "supplierCode": "lgde",
        "outTransferId": "1284009718",
        "inboundSourceType": 100,
        "purchaseChannelId": "1001"
    },
    "storeCode": "",
    "sourceModule": "wms-pick",
    "isolationZone": false,
    "stageZoneType": "OUTBOUND"
}

?

這些擴(kuò)展字段支持作為查詢條件過濾庫存,用于出庫建單。

在服務(wù)層面為了支持動(dòng)態(tài)增減的屬性條件,條件字段定義為Map類型,與 JSON 字段中的 extendMap 所對(duì)應(yīng)。

?

wKgZO2m6GE6AE-IrAAXEE0I9C1A246.png

?

?

list查詢條件的特殊預(yù)處理

wKgZO2m6GE-ANnrnAAF8OT89gTQ856.png

?

SQL層面的動(dòng)態(tài)查詢效果:

wKgZO2m6GFCAaAMFAAI-FKBKdGQ233.png

?

元素包含條件使用案例

設(shè)備組條件

wKgZPGm6GFGAC-CMAAHQ8ksCVRM305.png

?

批屬性條件

wKgZPGm6GFKASu5RAAFvh5qQL4I355.png

?

序列號(hào)條件

wKgZPGm6GFOAD3wRAACFDvmSDOk581.png

?

?

數(shù)值管理深度剖析案例

案例背景

在現(xiàn)有的場(chǎng)景中,目前僅華冠場(chǎng)景支持重量庫存,其他條線暫無庫存管理。在本案例中,重量庫存通過個(gè)性化擴(kuò)展字段實(shí)現(xiàn),JSON類型。

JSON類型的字段名是 extend_content,其中重量字段 stockWeight 的 JSON path是 $.stockInfo.stockWeight 。

stockInfo 的內(nèi)容示例如下:

{
    "businessNo": "OT2008735812539129856",
    "stockWeight": 630,
    "businessType": "WMS_PICK",
    "businessTypeName": "出庫揀貨"
}

?

增減重量庫存

單行更新

wKgZO2m6GFOAcuKgAACZ_41Fks8397.png

?

通過CASE WHEN THEN 方式批量更新JSON字段中的重量庫存

wKgZO2m6GFSAMGtrAAGGm8431dc169.png

?

剝繭第一層

?

在調(diào)試中,發(fā)現(xiàn)JSON字段,如果想要通過 json_set 賦值,必須依賴于該字段不能為null,如果json_set 該JSON字段值為null,則更新不上,不會(huì)產(chǎn)生SQL語法錯(cuò)誤。

?

對(duì)于存量的歷史null值字段統(tǒng)計(jì),并做一次初始化。

?

初始化歷史數(shù)據(jù)

統(tǒng)計(jì)JSON字段extend_content值為null 的數(shù)據(jù)

wKgZPGm6GFWAZ-7fAAMOCp0pL1Q356.png

?

將 extend_content 為 null 的進(jìn)行初始化

wKgZPGm6GFaAL10KAAC_hTxa3kg424.png

?

wKgZPGm6GFeAcQYBAADNCGNGIdo529.png

?

統(tǒng)計(jì)JSON字段extend_content值不為null,但其中的stockInfo為null的數(shù)據(jù)

wKgZPGm6GFiAWs7TAAOMVvtHIGs285.png

?

?

將 extend_content.stockInfo 為 null 的數(shù)據(jù)進(jìn)行初始化

wKgZPGm6GFiAdgf5AAD3sjmsHzM296.png

?

對(duì)存量的歷史數(shù)據(jù)初始化完畢,考慮到某些場(chǎng)景可能還會(huì)持續(xù)產(chǎn)生 JSON 字段 null值情況,考慮在代碼中進(jìn)行兼容,如果想在 JSON 字段中進(jìn)行 json_set,SQL進(jìn)行檢查并自動(dòng)進(jìn)行前置初始化。

wKgZPGm6GFmAWv4VAAG1lMG0P-Y208.png

?

以上SQL,通過JSON_OBJECT函數(shù)將null值的JSON字段,初始化為一個(gè)空J(rèn)SON對(duì)象,肉眼看上去是 {}。

?

剝繭第二層

?

除了上面歷史null值的JSON字段外,還發(fā)現(xiàn)一個(gè)更為復(fù)雜的場(chǎng)景,JSON字段更新前不為null,但是本次賦值更新操作卻導(dǎo)致JSON字段整體變成了null,匪夷所思!

?

單行更新方式因?yàn)槭且淮问歉乱恍校瑳]有問題。

批量更新,如果所有的明細(xì)stockWeight字段都有值,更新也沒問題。如果一次批量更新的明細(xì)中,有的stockWeight字段有值,有的沒有值,則更新會(huì)有問題,不會(huì)出現(xiàn)SQL語法錯(cuò)誤,但是整個(gè)extend_content JSON字段會(huì)被錯(cuò)誤地更新為null。

?

wKgZPGm6GFqADBBBAAmqXq-sTuU060.png

?

在測(cè)試環(huán)境中,調(diào)試的一個(gè)入?yún)⑷缦拢?/p>

{
  "requestHeader": {
    "sourceModule": "inventory",
    "requestIp": "11.50.45.137",
    "warehouseNo": "6_6_618",
    "businessType": "INV-CHANGE-PROFIT-LOSS",
    "businessTypeName": "盤盈虧",
    "businessNo": "CP2009231067168407553",
    "uuid": "wms.inv.change.profit.6_6_618.CP2009231067168407553.2009231067554283520.12",
    "operator": "guozhongqiang5"
  },
  "increaseStockDetailList": [
    {
      "detailBusinessNo": "DPPT20092299369586442242",
      "stockLocationIndicator": {
        "locationNo": "01",
        "containerLevel1": "",
        "containerLevel2": ""
      },
      "stockSkuIndicator": {
        "sku": "EMG172002001",
        "lotNo": "-1",
        "skuLevel": "100",
        "packCode": "8c59689e8972a14e4883b0ea755b3702",
        "ownerNo": "EBU4398046536982"
      },
      "increaseOperateType": "normalIncrease",
      "stockQty": 1.0000,
      "recommendLocationNo": "",
      "externalNo": "CP2009231067168407553",
      "uniqueStockList": [],
      "reason": {}
    },
    {
      "detailBusinessNo": "DPPT2009229936958644224",
      "stockLocationIndicator": {
        "locationNo": "01",
        "containerLevel1": "",
        "containerLevel2": ""
      },
      "stockSkuIndicator": {
        "sku": "EMG172002003",
        "lotNo": "-1",
        "skuLevel": "100",
        "packCode": "8c59689e8972a14e4883b0ea755b3702",
        "ownerNo": "EBU4398046536982"
      },
      "increaseOperateType": "normalIncrease",
      "stockQty": 0.0000,
      "stockWeight": 3000,
      "recommendLocationNo": "",
      "externalNo": "CP2009231067168407553",
      "uniqueStockList": [],
      "reason": {}
    }
  ]
}

?

wKgZO2m6GFuAa1rgAAG9kw4sDYE167.png

?

wKgZO2m6GFyAIvN9AAHNDydUbWk806.png

?

我們可以看到,上面這個(gè)入?yún)⒂袃蓚€(gè)明細(xì),對(duì)應(yīng)的SKU分別是EMG172002001 和 EMG172002003。第一個(gè)明細(xì)只有stockQty字段無stockWeight字段,第二個(gè)同時(shí)有stockQty字段,和stockWeight字段,stockWeight值為 3000。

?

此時(shí),批量更新形成的SQL如下:

UPDATE
	st_stock
set
	stock_qty =
	case
		WHEN deleted = 0
			AND warehouse_no = '6_6_618'
			AND id = 2008872347100020736
			AND status = 0
		THEN stock_qty + 1.0000
		WHEN deleted = 0
			AND warehouse_no = '6_6_618'
			AND id = 2008872388812374016
			AND status = 0
		THEN stock_qty + 0.0000
	end,
	extend_content =
	case
    
		WHEN deleted = 0
			AND warehouse_no = '6_6_618'
			AND id = 2008872388812374016
			AND status = 0
		THEN JSON_SET(COALESCE(extend_content, '{}'), '$.stockInfo', COALESCE(JSON_EXTRACT(extend_content, '$.stockInfo'), JSON_OBJECT()))
        ELSE extend_content
        
	end,
	extend_content =
	case
		WHEN deleted = 0
			AND warehouse_no = '6_6_618'
			AND id = 2008872388812374016
			AND status = 0
		THEN json_set(extend_content, '$.stockInfo.stockWeight', IFNULL(extend_content ->> '$.stockInfo.stockWeight', 0) + IFNULL(3000.0, 0))
	end,
	update_time = now(),
	version = version + 1,
	update_user = 'guozhongqiang5',
	extend_content = json_set(extend_content, '$.stockInfo.businessType', 'INV-CHANGE-PROFIT-LOSS', '$.stockInfo.businessTypeName', '盤盈虧', '$.stockInfo.businessNo', 'CP2009231067168407553333')
WHERE
	(
		deleted = 0
		AND warehouse_no = '6_6_618'
		AND id = 2008872347100020736
		AND status = 0
	)
	or
	(
		deleted = 0
		AND warehouse_no = '6_6_618'
		AND id = 2008872388812374016
		AND status = 0
	)

?

問題出現(xiàn)下圖圈紅的部分:

wKgZO2m6GF2AAkEYAAIjhVvveE8793.png

?

wKgZO2m6GF6ACsupAASegvwWLrY595.png

?

在上面的場(chǎng)景中,一次批量更新有兩個(gè)明細(xì),其中一個(gè)因?yàn)閟tockWeight為null,不會(huì)被動(dòng)態(tài)拼接到SQL中,這個(gè)無對(duì)應(yīng)的 WHEN THEN 則 extend_content 被置為null,另一個(gè)明細(xì)因?yàn)橛?WHEN THEN 則賦值正常。

?

此時(shí)直觀的想法是,既然因?yàn)閟tockWeight為null的明細(xì)走不上 WHEN THEN ,何不通過 ELSE 賦值為extend_content 本身來解決呢。按此思路進(jìn)行代碼調(diào)整如下:

?

wKgZPGm6GF-APggSAAHCCSdRVXM857.png

?

調(diào)試明細(xì)stockWeigh不為空,驗(yàn)證通過。

?

剝繭第三層

?

但是,當(dāng)所有明細(xì)stockWeight為null的時(shí)候,因?yàn)?ELSE extend_content 在 if條件滿足的時(shí)候才會(huì)動(dòng)態(tài)拼接,當(dāng),此時(shí) WHEN THEN 和 ELSE都不會(huì)拼接進(jìn)去,語法不通過。

?

那么,把 ELSE extend_content 從 if 條件判斷拿出來,放在 end的前面總可以了吧。

?

wKgZPGm6GGCAbzsaAAG2F7g-1RA139.png

?

這里借助 foreach 的 close 來拼接 ELSE extend_content 語句。

?

在測(cè)試環(huán)境驗(yàn)證時(shí),當(dāng)更新入?yún)⒅辽僖粋€(gè)明細(xì)中的 stockWeight 不為null時(shí),確實(shí)沒問題。當(dāng)所有明細(xì)的stockWeight都為null時(shí),新的問題來了,報(bào)錯(cuò)信息及分析過程如下:

?

### The error occurred while setting parameters
### SQL: UPDATE st_stock set stock_qty=case WHEN deleted = 0 AND warehouse_no = ? AND id = ? and stock_qty >= ? * -1 THEN stock_qty + ? WHEN deleted = 0 AND warehouse_no = ? AND id = ? and stock_qty >= ? * -1 THEN stock_qty + ? end, diff_qty=case WHEN deleted = 0 AND warehouse_no = ? AND id = ? and diff_qty >= ? * -1 THEN diff_qty + ? WHEN deleted = 0 AND warehouse_no = ? AND id = ? and diff_qty >= ? * -1 THEN diff_qty + ? end, extend_content=case ELSE extend_content end, extend_content=case ELSE extend_content end, update_time = now() , version = version + 1 , update_user = ? , extend_content = json_set(extend_content, ?, ?, ?, ?, ?, ?) WHERE ( deleted = 0 AND warehouse_no = ? AND id = ? and diff_qty >= ? * -1 AND status = 0 ) or ( deleted = 0 AND warehouse_no = ? AND id = ? and diff_qty >= ? * -1 AND status = 0 ) /* [SQLMarking] statementId: com.jdwl.wms.stock.infrastructure.jdbc.main.dao.StockOperationDao.simpleDecreaseDiffQty */
### Cause: com.jdbc.exceptions.jdbc4.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your SQL server version for the right syntax to use near 'ELSE extend_content end,
extend_content=case ELSE extend_content' at line 36
; bad SQL grammar []; nested exception is com.sql.jdbc.exceptions.jdbc4.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your SQL server version for the right syntax to use near 'ELSE extend_content end,

?

wKgZO2m6GGGALk_-AAMF7Qgs08I675.png

?

入?yún)?/p>

{
    "requestHeader": {
        "sourceModule": "inventory",
        "requestIp": "11.158.12.73",
        "warehouseNo": "6_6_618",
        "businessType": "INV-PROFIT-LOSS-TRANSFER-STOCK-MATCH",
        "businessTypeName": "盤盈、盤虧單預(yù)占轉(zhuǎn)移",
        "businessNo": "CL2009892868717576192",
        "uuid": "wms.inv.change.lock.transfer.loss.6_6_618.2009892868977623040.0",
        "operator": "guozhongqiang5"
    },
    "stockLockTransformType": "difference2Change",
    "stockLockTransformDetailList": [
        {
            "srcBusinessNo": "DPPT2009892261415911424",
            "destBusinessNo": "CL2009892868717576192",
            "stockSkuIndicator": {
                "sku": "EMG172002002",
                "lotNo": "-1",
                "skuLevel": "100",
                "packCode": "8c59689e8972a14e4883b0ea755b3702",
                "ownerNo": "EBU4398046536982"
            },
            "stockLocationIndicator": {
                "locationNo": "01",
                "containerLevel1": "",
                "containerLevel2": ""
            },
            "qty": 2
        },
        {
            "srcBusinessNo": "DPPT2009892261415911424",
            "destBusinessNo": "CL2009892868717576192",
            "stockSkuIndicator": {
                "sku": "EMG172002004",
                "lotNo": "-1",
                "skuLevel": "100",
                "packCode": "8c59689e8972a14e4883b0ea755b3702",
                "ownerNo": "EBU4398046536982"
            },
            "stockLocationIndicator": {
                "locationNo": "01",
                "containerLevel1": "",
                "containerLevel2": ""
            },
            "qty": 4
        }
    ],
    "serialLockTransformDetailList": [

    ]
}

入?yún)⒈旧頉]什么問題,是符合要求的入?yún)?,從本次需求的特征上來看只是沒有重量字段,重量字段非必填,也不是必須的,在很多場(chǎng)景下也不涉及重量庫存的變化。

?

數(shù)據(jù)

wKgZPGm6GGKAcVcxAAFbk2O7DOg523.png

?

數(shù)據(jù)庫中的待更新數(shù)據(jù)本身也沒有問題。

到這里,已經(jīng)確認(rèn)入?yún)⑹钦?chǎng)景,待更新數(shù)據(jù)也沒問題,是SQL本身存在問題。

?


    
        
            WHEN
            
            THEN json_set(extend_content, #{item.stockWeightJsonPath, jdbcType=VARCHAR}, IFNULL(extend_content ->> #{item.stockWeightJsonPath, jdbcType=VARCHAR}, 0) + IFNULL(#{item.stockWeight, jdbcType=DECIMAL}, 0))
        
    


?

結(jié)合代碼來看,入?yún)tockWeight為null,則 if 條件里的 WHEN THEN 拼不進(jìn)去,但 close 部分的 ELSE extend_content 可以拼入,結(jié)合前面prefix的 extend_content=case 和 suffix 的 end, 連在一起就是:

extend_content=case ELSE extend_content end,

顯然,這個(gè)語法不通過的。

?

解決方法也比較簡單,就是把 ELSE 語句改成 WHEN THEN 語句,具體如下:

wKgZO2m6GGOAYuCkAAHIEd9zH8k422.png

?

這樣即使if語句不拼接進(jìn)去,整體拼出來的語句如下,也是符合預(yù)期的:

extend_content=case WHEN 1=1 THEN extend_content end,

至此,批量更新所有明細(xì)全有stockWeight,全無stockWeight,部分有部分無stockWeight的場(chǎng)景,均已支持完畢。

?

再來一層

?

回過頭看,還有另外一個(gè)思路處理更為簡單,不用 CASE WHEN THEN 方式新寫一個(gè)批量更新方法:

wKgZPGm6GGSAF5XDAAUl65OkAzg621.png

?

這種批量更新方式,依賴于開啟 allowMultiQueries :

wKgZO2m6GGSAIeyRAACcbBnUvqo297.png

?

不禁感慨,條條大路通羅馬,并非所有的路都一帆風(fēng)順,但我們終究抵達(dá)終點(diǎn)。

wKgZPGm6GGWAVBaYAAKPsE371zs96.jpeg



審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    4077

    瀏覽量

    68504
  • JSON
    +關(guān)注

    關(guān)注

    0

    文章

    129

    瀏覽量

    7805
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    深度解讀MySQL數(shù)據(jù)庫備份恢復(fù)策略

    數(shù)據(jù)是企業(yè)的核心資產(chǎn),數(shù)據(jù)庫備份是保障數(shù)據(jù)安全的最后道防線。某天上午10點(diǎn),運(yùn)營人員誤執(zhí)行了條DELETE語句,刪除了訂單表中近
    的頭像 發(fā)表于 01-26 17:40 ?825次閱讀

    不用編程不用聯(lián)網(wǎng),快速實(shí)現(xiàn)PLC與數(shù)據(jù)庫雙向數(shù)據(jù)通訊的案例

    ?IGT-SER系列智能網(wǎng)關(guān)方便實(shí)現(xiàn)多臺(tái)PLC與SQL數(shù)據(jù)庫之間的數(shù)據(jù)通訊,既可以讀取PLC的數(shù)據(jù)上報(bào)到數(shù)據(jù)庫,也可以從數(shù)據(jù)庫查詢
    發(fā)表于 01-14 10:51

    2025開放原子開發(fā)者大會(huì)AI時(shí)代數(shù)據(jù)庫創(chuàng)新實(shí)踐分論壇成功舉辦

    、PikiwiDB、IvorySQL、GreatSQL、Milvus等主流開源數(shù)據(jù)庫社區(qū)核心技術(shù)專家,聚焦數(shù)據(jù)庫與大模型深度融合的技術(shù)趨勢(shì)與實(shí)踐路徑,展開干貨滿滿的
    的頭像 發(fā)表于 11-27 14:56 ?693次閱讀

    數(shù)據(jù)庫慢查詢分析與SQL優(yōu)化實(shí)戰(zhàn)技巧

    今天,我將分享我在處理數(shù)千次數(shù)據(jù)庫性能問題中積累的實(shí)戰(zhàn)經(jīng)驗(yàn),幫助你系統(tǒng)掌握慢查詢分析與SQL優(yōu)化的核心技巧。無論你是剛?cè)腴T的運(yùn)維新手,還是有定經(jīng)驗(yàn)的工程師,這篇文章都將為你提供實(shí)用的解決方案。
    的頭像 發(fā)表于 09-08 09:34 ?1179次閱讀

    數(shù)據(jù)庫性能優(yōu)化指南

    作為名在大廠摸爬滾打多年的運(yùn)維老兵,我見過太多因?yàn)?b class='flag-5'>數(shù)據(jù)庫性能問題導(dǎo)致的生產(chǎn)事故。今天分享套完整的數(shù)據(jù)庫優(yōu)化方法論,從SQL層面到硬件配置,幫你徹底解決性能瓶頸!
    的頭像 發(fā)表于 08-18 11:21 ?864次閱讀

    智能客服驅(qū)動(dòng)效率和體驗(yàn)升級(jí),上海電信+昇騰AI的一次民生應(yīng)用實(shí)踐

    上海電信+昇騰AI的一次民生應(yīng)用實(shí)踐
    的頭像 發(fā)表于 07-30 23:44 ?3049次閱讀
    智能客服驅(qū)動(dòng)效率和體驗(yàn)升級(jí),上海電信+昇騰AI的<b class='flag-5'>一次</b>民生應(yīng)用<b class='flag-5'>實(shí)踐</b>

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—服務(wù)器異常斷電導(dǎo)致Oracle數(shù)據(jù)庫故障的數(shù)據(jù)恢復(fù)案例

    Oracle數(shù)據(jù)庫故障: 某公司臺(tái)服務(wù)器上部署Oracle數(shù)據(jù)庫。服務(wù)器意外斷電導(dǎo)致數(shù)據(jù)庫報(bào)錯(cuò),報(bào)錯(cuò)內(nèi)容為“system01.dbf需要更多的恢復(fù)來保持
    的頭像 發(fā)表于 07-24 11:12 ?809次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—服務(wù)器異常斷電導(dǎo)致Oracle<b class='flag-5'>數(shù)據(jù)庫</b>故障的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    三款主流國產(chǎn)數(shù)據(jù)庫的技術(shù)特點(diǎn)

    隨著數(shù)字經(jīng)濟(jì)的快速發(fā)展和數(shù)據(jù)安全要求的提升,國產(chǎn)數(shù)據(jù)庫正迎來前所未有的發(fā)展機(jī)遇。在信創(chuàng)浪潮推動(dòng)下,達(dá)夢(mèng)數(shù)據(jù)庫、TiDB、華為高斯數(shù)據(jù)庫等國產(chǎn)數(shù)據(jù)庫
    的頭像 發(fā)表于 07-14 11:08 ?1304次閱讀

    企業(yè)級(jí)MySQL數(shù)據(jù)庫管理指南

    在當(dāng)今數(shù)字化時(shí)代,MySQL作為全球最受歡迎的開源關(guān)系型數(shù)據(jù)庫,承載著企業(yè)核心業(yè)務(wù)數(shù)據(jù)的存儲(chǔ)與處理。作為數(shù)據(jù)庫管理員(DBA),掌握MySQL的企業(yè)級(jí)部署、優(yōu)化、維護(hù)技能至關(guān)重要。本文將從實(shí)戰(zhàn)角度出發(fā),系統(tǒng)闡述MySQL在企業(yè)環(huán)
    的頭像 發(fā)表于 07-09 09:50 ?849次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MongoDB數(shù)據(jù)庫文件丟失的數(shù)據(jù)恢復(fù)案例

    MongoDB數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 臺(tái)操作系統(tǒng)為Windows Server的虛擬機(jī)上部署MongoDB數(shù)據(jù)庫。 MongoDB數(shù)據(jù)庫
    的頭像 發(fā)表于 07-01 11:13 ?750次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—MongoDB<b class='flag-5'>數(shù)據(jù)庫</b>文件丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫被加密如何恢復(fù)數(shù)據(jù)?

    SQL Server數(shù)據(jù)庫故障: SQL Server數(shù)據(jù)庫被加密,無法使用。 數(shù)據(jù)庫MDF、LDF、log日志文件名字被篡改。
    的頭像 發(fā)表于 06-25 13:54 ?801次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—SQL Server<b class='flag-5'>數(shù)據(jù)庫</b>被加密如何恢復(fù)<b class='flag-5'>數(shù)據(jù)</b>?

    oracle數(shù)據(jù)恢復(fù)—oracle數(shù)據(jù)庫誤執(zhí)行錯(cuò)誤truncate命令如何恢復(fù)數(shù)據(jù)?

    oracle數(shù)據(jù)庫誤執(zhí)行truncate命令導(dǎo)致數(shù)據(jù)丟失是種常見情況。通常情況下,oracle數(shù)據(jù)庫誤操作刪除數(shù)據(jù)只需要通過備份恢復(fù)
    的頭像 發(fā)表于 06-05 16:01 ?1671次閱讀
    oracle<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—oracle<b class='flag-5'>數(shù)據(jù)庫</b>誤執(zhí)行錯(cuò)誤truncate命令如何恢復(fù)<b class='flag-5'>數(shù)據(jù)</b>?

    SQLSERVER數(shù)據(jù)庫是什么

    SQL Server 是由微軟公司開發(fā)的款 關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS) ,用于存儲(chǔ)、管理和檢索結(jié)構(gòu)化數(shù)據(jù)。它是企業(yè)級(jí)應(yīng)用中廣泛使用的數(shù)據(jù)庫解決方案之
    的頭像 發(fā)表于 05-26 09:19 ?1275次閱讀

    MySQL數(shù)據(jù)庫是什么

    MySQL數(shù)據(jù)庫種 開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS) ,由瑞典MySQL AB公司開發(fā),后被Oracle公司收購。它通過結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)存儲(chǔ)、管理和操作,廣
    的頭像 發(fā)表于 05-23 09:18 ?1399次閱讀

    HarmonyOS5云服務(wù)技術(shù)分享--云數(shù)據(jù)庫使用指南

    ??: 敏感數(shù)據(jù)啟用字段級(jí)加密(如用戶手機(jī)號(hào))。 ? ??總結(jié)?? 華為云數(shù)據(jù)庫(CloudDB)讓HarmonyOS應(yīng)用的數(shù)據(jù)管理變得輕松又高效!通過本文的代碼示例和技巧,相信你已
    發(fā)表于 05-22 18:29
    四会市| 辽阳县| 鄂托克旗| 嘉荫县| 沿河| 盐亭县| 南陵县| 玛纳斯县| 绥江县| 来安县| 左权县| 稻城县| 舒城县| 南郑县| 永安市| 永济市| 长沙市| 和田市| 双鸭山市| 綦江县| 榆树市| 开平市| 乌兰县| 通榆县| 永川市| 银川市| 汪清县| 常德市| 马尔康县| 兰溪市| 天全县| 张家口市| 宁国市| 宜章县| 阆中市| 北辰区| 彰武县| 三明市| 武宁县| 龙岩市| 阜阳市|