主頁(yè) > 知識(shí)庫(kù) > 數(shù)據(jù)庫(kù)中identity字段不必是系統(tǒng)產(chǎn)生的唯一值 性能優(yōu)化方法(新招)

數(shù)據(jù)庫(kù)中identity字段不必是系統(tǒng)產(chǎn)生的唯一值 性能優(yōu)化方法(新招)

熱門標(biāo)簽:Linux服務(wù)器 AI電銷 網(wǎng)站排名優(yōu)化 服務(wù)外包 地方門戶網(wǎng)站 呼叫中心市場(chǎng)需求 百度競(jìng)價(jià)排名 鐵路電話系統(tǒng)
但是,具有identity特性的字段,不需要具有唯一性,更不必須是主鍵。

可以通過(guò),set identity_insert tablename (on|off),在運(yùn)行時(shí)控制,是否可以在identity字段中指定值,而不是由系統(tǒng)自動(dòng)的插入值。

那么,這有什么用處呢。舉個(gè)例子來(lái)說(shuō),兩個(gè)用戶之間的聊天,可以有多次,這個(gè)用一個(gè)chatsession來(lái)表示。在數(shù)據(jù)庫(kù)中,我們需要三個(gè)表: user, chatsession(sessionid identity,...), user_chatsession (userid, sessionid, ...), 來(lái)表示這個(gè)關(guān)系。這里面,多出了一個(gè)表chatsession, 其主鍵sessionid具有identity特性,并且在user_chatsession中被引用。

但是,我們知道,數(shù)據(jù)庫(kù)寫操作比讀操作的開(kāi)銷要大很多,如果我想做優(yōu)化,把chatsession整個(gè)的去掉,那應(yīng)該怎么做呢.

這時(shí),就會(huì)用到我說(shuō)的這一點(diǎn)。首先把 user_chatsession 中的sesssionid變成identity 字段,在插入一個(gè)session中的第一個(gè) user-session (for user a)記錄時(shí),讓系統(tǒng)產(chǎn)生sessionid, 然后記錄下這個(gè)sessionid, 在插入一個(gè)session中后續(xù)的 user-session (for user b, user c...), 執(zhí)行set identity_insert tablename on,就可以把先前記錄的sessionid值插入。

還有另外一個(gè)方法,比較笨一點(diǎn),就是用 select max(sessionid) + 1 from table where userid = @useridA,來(lái)獲得要新插入的sessionid, 這種方法性能上顯然差了許多。
您可能感興趣的文章:
  • Oracle數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)開(kāi)發(fā)者網(wǎng)絡(luò)Oracle
  • SQL Server數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)
  • SQL Server數(shù)據(jù)庫(kù)的高性能優(yōu)化經(jīng)驗(yàn)總結(jié)
  • 數(shù)據(jù)庫(kù)性能優(yōu)化三:程序操作優(yōu)化提升性能
  • 數(shù)據(jù)庫(kù)性能優(yōu)化二:數(shù)據(jù)庫(kù)表優(yōu)化提升性能
  • 數(shù)據(jù)庫(kù)性能優(yōu)化一:數(shù)據(jù)庫(kù)自身優(yōu)化提升性能
  • MySQL性能優(yōu)化的一些技巧幫助你的數(shù)據(jù)庫(kù)
  • 解析MySQL數(shù)據(jù)庫(kù)性能優(yōu)化的六大技巧
  • 數(shù)據(jù)庫(kù)訪問(wèn)性能優(yōu)化

標(biāo)簽:蘭州 黃山 仙桃 湖南 崇左 衡水 湘潭 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《數(shù)據(jù)庫(kù)中identity字段不必是系統(tǒng)產(chǎn)生的唯一值 性能優(yōu)化方法(新招)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266