3 回答

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果您傾向于使用char(16),請(qǐng)改用binary(16)。binary(n)沒有排序規(guī)則或字符集的概念(或者,它是字符集/排序規(guī)則為'binary'的char(n))。mysql中char的默認(rèn)值是latin1_swedish_ci,這意味著它將嘗試不區(qū)分大小寫的排序和對(duì)latin1中有效代碼點(diǎn)的字節(jié)值進(jìn)行比較,這將導(dǎo)致各種意想不到的問題。
另一種選擇是使用無(wú)符號(hào)十進(jìn)制(39,0)零填充,效率不如兩個(gè)bigints(十進(jìn)制將在當(dāng)前版本的mysql中每9位使用4個(gè)字節(jié)),但允許您將其全部保留在一個(gè)列中并打印很好。

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
請(qǐng)注意,如標(biāo)準(zhǔn)C標(biāo)頭中的INET6_ADDRSTRLEN所定義,IPv6地址的最大長(zhǎng)度(包括作用域標(biāo)識(shí)符)為46個(gè)字節(jié)。對(duì)于Internet使用,您應(yīng)該可以忽略區(qū)域標(biāo)識(shí)符(%10,#eth0等),但要知道getaddrinfo何時(shí)返回比預(yù)期更長(zhǎng)的結(jié)果。
添加回答
舉報(bào)