資料庫問題集合

2021-10-09 11:28:45 字數 1632 閱讀 9514

資料庫 – 自增id:uuid?

分布式:單體架構

自增id,適合單體架構專案,占用空間少,查詢速率相較uuid快

uuid,適合分布式專案生成唯一主鍵id,占用空間大,查詢效率較低

背景普及:常見的位運算有

and運算 &:

and運算通常用於二進位制的取位操作,例如乙個數 and 1的結果就是取二進位制的最末位。這可以用來判斷乙個整數的奇偶,二進位制的最末位為0表示該數為偶數,最末位為1表示該數為奇數。

相同位的兩個數字都為1,則為1;若有乙個不為1,則為0

or運算 | :

or運算通常用於二進位制特定位上的無條件賦值,例如乙個數or 1的結果就是把二進位制最末位強行變成1。如果需要把二進位制最末位變成0,對這個數or 1之後再減一就可以了,其實際意義就是把這個數強行變成最接近的偶數。

相同位只要乙個為1即為1

xor運算 ^ :

異或的符號是^。按位異或運算, 對等長二進位制模式按位或二進位制數的每一位執行邏輯按位異或操作. 操作的結果是如果某位不同則該位為1, 否則該位為0.

xor運算的逆運算是它本身,也就是說兩次異或同乙個數最後結果不變,即(a xor b) xor b = a。xor運算可以用於簡單的加密,比如我想對我mm說1314520,但怕別人知道,於是雙方約定拿我的生日19880516作為金鑰。1314520 xor 19880516 = 20665500,我就把20665500告訴mm。mm再次計算20665500 xor 19880516的值,得到1314520。

相同位不同則為1,相同則為0

常用場景:

對於某乙個物件的某個狀態有多個狀態,可以用二進位制的位數的0,1進行狀態表示,1即代表狀態有,0代表狀態無,也可以自行定義狀態含義(資料庫乙個字段即可包含多個狀態值表示,亦可以對不同的狀態值進行統計,即某個物件該狀態有幾項狀態有,幾項狀態無,方便統計設計)

問題1: ** 想實現資料庫某字段的自然排序?**

思路:1).若該資料庫欄位為number 數字型別,直接可以進行

select

*from

table

order

by segment (

asc/

desc

)

2).若該字段為varchar型別,需先將varchar轉為數值型別,再排序

【補充】:varchar型別的order by 排序,會按位進行比較,即按照ascii的排序順序進行比較排序。

select

*from

table

order

by(segment+0)

(asc

/desc

)

關於資料庫的相關問題集合

php 連線資料庫 1.資料庫的連線問題 link mysql connect localhost root root or die 資料庫連線失敗1001 mysql error 打通資料庫的連線,返回控制代碼給 link conn mysql select db msb link or die ...

資料庫文章集合

configuring dtc to work through a firewall ms support 文 sql 儲存過程分頁 2004 文 ado.中資料庫連線方式 微軟提供 微軟 文 yukon and the clr srinivas sampath 文 sql server 與acce...

Map集合儲存資料庫

1.mapparamsmap new hashmap listitemlist sf.parserequest request 1.上傳 for fileitem fileitem itemlist else 普通元件 2.封裝product物件 儲存到資料庫裡 product product ne...