一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

MySQL中如何存儲(chǔ)IP地址

Android編程精選 ? 來(lái)源:CSDN技術(shù)社區(qū) ? 作者:CSDN技術(shù)社區(qū) ? 2022-08-11 11:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在看高性能MySQL第3版(4.1.7節(jié))時(shí),作者建議當(dāng)存儲(chǔ)IPv4地址時(shí),應(yīng)該使用32位的無(wú)符號(hào)整數(shù)(UNSIGNED INT)來(lái)存儲(chǔ)IP地址,而不是使用字符串。但是沒(méi)有給出具體原因。

為了搞清楚這個(gè)原因,查了一些資料,記錄下來(lái)。

相對(duì)字符串存儲(chǔ),使用無(wú)符號(hào)整數(shù)來(lái)存儲(chǔ)有如下的好處:

通常,在保存IPv4地址時(shí),一個(gè)IPv4最小需要7個(gè)字符,最大需要15個(gè)字符,所以,使用VARCHAR(15)即可。

MySQL在保存變長(zhǎng)的字符串時(shí),還需要額外的一個(gè)字節(jié)來(lái)保存此字符串的長(zhǎng)度。而如果使用無(wú)符號(hào)整數(shù)來(lái)存儲(chǔ),只需要4個(gè)字節(jié)即可。

另外還可以使用4個(gè)字段分別存儲(chǔ)IPv4中的各部分,但是通常這不管是存儲(chǔ)空間和查詢效率應(yīng)該都不是很高(可能有的場(chǎng)景適合使用這種方式存儲(chǔ))。

使用字符串和無(wú)符號(hào)整數(shù)來(lái)存儲(chǔ)IP的具體性能分析及benchmark,可以看這篇文章。

https://bafford.com/2009/03/09/mysql-performance-benefits-of-storing-integer-ip-addresses/

使用無(wú)符號(hào)整數(shù)來(lái)存儲(chǔ)也有缺點(diǎn):

  • 不便于閱讀
  • 需要手動(dòng)轉(zhuǎn)換

對(duì)于轉(zhuǎn)換來(lái)說(shuō),MySQL提供了相應(yīng)的函數(shù)來(lái)把字符串格式的IP轉(zhuǎn)換成整數(shù)INET_ATON,以及把整數(shù)格式的IP轉(zhuǎn)換成字符串的INET_NTOA

如下所示:

mysql>selectinet_aton('192.168.0.1');
+--------------------------+
|inet_aton('192.168.0.1')|
+--------------------------+
|3232235521|
+--------------------------+
1rowinset(0.00sec)

mysql>selectinet_ntoa(3232235521);
+-----------------------+
|inet_ntoa(3232235521)|
+-----------------------+
|192.168.0.1|
+-----------------------+
1rowinset(0.00sec)

對(duì)于IPv6來(lái)說(shuō),使用VARBINARY同樣可獲得相同的好處,同時(shí)MySQL也提供了相應(yīng)的轉(zhuǎn)換函數(shù),即INET6_ATONINET6_NTOA。

對(duì)于轉(zhuǎn)換字符串IPv4和數(shù)值類型,可以放在應(yīng)用層,下面是使用java代碼來(lái)對(duì)二者轉(zhuǎn)換

packagecom.mikan;

/**
*@authorMikan
*/
publicclassIpLongUtils{
/**
*把字符串IP轉(zhuǎn)換成long
*
*@paramipStr字符串IP
*@returnIP對(duì)應(yīng)的long值
*/
publicstaticlongip2Long(StringipStr){
String[]ip=ipStr.split("\.");
return(Long.valueOf(ip[0])<returnlong值對(duì)應(yīng)的字符串
*/
publicstaticStringlong2Ip(longipLong){
StringBuilderip=newStringBuilder();
ip.append(ipLong>>>24).append(".");
ip.append((ipLong>>>16)&0xFF).append(".");
ip.append((ipLong>>>8)&0xFF).append(".");
ip.append(ipLong&0xFF);
returnip.toString();
}

publicstaticvoidmain(String[]args){
System.out.println(ip2Long("192.168.0.1"));
System.out.println(long2Ip(3232235521L));
System.out.println(ip2Long("10.0.0.1"));
}

}

輸出結(jié)果為:

3232235521
192.168.0.1
167772161

	
					

審核編輯:湯梓紅


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

    關(guān)注

    1

    文章

    590

    瀏覽量

    22256
  • IPv4
    +關(guān)注

    關(guān)注

    0

    文章

    144

    瀏覽量

    20459
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    860

    瀏覽量

    27922

原文標(biāo)題:面試官:如果要存 IP 地址,用什么數(shù)據(jù)類型比較好?99%人都會(huì)答錯(cuò)!

文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    購(gòu)買海外虛擬IP地址可以通過(guò)以下幾種方式#虛擬IP地址

    ip地址
    jf_62215197
    發(fā)布于 :2024年08月16日 07:16:04

    什么是IP地址?

    什么是IP地址? 臺(tái)連接到互聯(lián)網(wǎng)上的計(jì)算機(jī)都有個(gè)獨(dú)有的標(biāo)識(shí)碼,稱為IP地址。典型的IP地址如下
    發(fā)表于 08-06 09:41 ?2213次閱讀

    IP地址,IP地址是什么意思

    IP地址,IP地址是什么意思 基本定義 IP地址都是一個(gè)十分重要的概念,INTERNET的許多
    發(fā)表于 04-03 15:12 ?1744次閱讀

    mac地址ip地址是什么決定的

    IP地址是指互聯(lián)網(wǎng)協(xié)議地址(英語(yǔ):Internet Protocol Address,又譯為網(wǎng)際協(xié)議地址),是IP Address的縮寫。
    發(fā)表于 03-07 17:14 ?8114次閱讀
    mac<b class='flag-5'>地址</b>和<b class='flag-5'>ip</b><b class='flag-5'>地址</b>是什么決定的

    如何查看Linuxip地址

    在排除網(wǎng)絡(luò)問(wèn)題,設(shè)置新連接或配置防火墻時(shí),了解設(shè)備的 IP 地址非常重要。下面我們就來(lái)看看Linux查看ip地址的方法吧!
    發(fā)表于 05-25 09:35 ?3125次閱讀
    如何查看Linux<b class='flag-5'>中</b>的<b class='flag-5'>ip</b><b class='flag-5'>地址</b>

    海外服務(wù)器IP地址都有哪些類型

    服務(wù)器的IP地址和物理地址的關(guān)系 每個(gè)設(shè)備都會(huì)有一個(gè)自己的物理地址,同互聯(lián)網(wǎng)IP
    的頭像 發(fā)表于 04-29 15:10 ?7197次閱讀

    IP地址是什么,IP地址的分類有哪些

    一、IP地址概念 IP地址是一個(gè)32位的二進(jìn)制數(shù),它由網(wǎng)絡(luò)ID和主機(jī)ID兩部份組成,用來(lái)在網(wǎng)絡(luò)唯一的標(biāo)識(shí)的一臺(tái)計(jì)算機(jī)。網(wǎng)絡(luò)ID用來(lái)標(biāo)識(shí)計(jì)算
    發(fā)表于 05-20 13:34 ?1.4w次閱讀

    什么是IP地址 IP地址=IPV4的地址?

    在生活我們使用具有上網(wǎng)功能的電子設(shè)備都有IP地址,就跟每個(gè)人都有自己的名字一樣。IP地址分為IPV4 IPV6,我們所說(shuō)的的
    發(fā)表于 11-21 10:50 ?1.1w次閱讀

    如何使用WINDAQ MySQL存儲(chǔ)數(shù)據(jù)

    MySQL數(shù)據(jù)庫(kù)可以存儲(chǔ)比Microsoft Excel電子表格多30,000倍的數(shù)據(jù)。用于 結(jié)合WinDaq/Lite,Pro或Pro+,WinDaq / MySQL對(duì)于那些需要存儲(chǔ)
    的頭像 發(fā)表于 12-02 16:29 ?1142次閱讀
    如何使用WINDAQ <b class='flag-5'>MySQL</b><b class='flag-5'>存儲(chǔ)</b>數(shù)據(jù)

    什么是IP地址 IP子網(wǎng)劃分VLSM詳解

    網(wǎng)絡(luò)掩碼值為1的bit對(duì)應(yīng)IP地址的網(wǎng)絡(luò)位;為0的bit對(duì)應(yīng)IP地址的主機(jī)位,以此來(lái)輔助我們
    發(fā)表于 08-10 10:00 ?4998次閱讀
    什么是<b class='flag-5'>IP</b><b class='flag-5'>地址</b> <b class='flag-5'>IP</b>子網(wǎng)劃分VLSM詳解

    MySQL中用什么數(shù)據(jù)類型存IP地址

    提到 IP 地址(IPv4),大伙兒腦子里肯定馬上能浮現(xiàn)類似于 192.168.0.1、127.0.0.1 這種常見(jiàn)的 IP 地址,然后結(jié)合這個(gè)問(wèn)題 “
    的頭像 發(fā)表于 08-25 14:39 ?810次閱讀
    <b class='flag-5'>MySQL</b>中用什么數(shù)據(jù)類型存<b class='flag-5'>IP</b><b class='flag-5'>地址</b>

    MySQL數(shù)據(jù)庫(kù)的url地址

    (Protocol):MySQL數(shù)據(jù)庫(kù)使用的協(xié)議通常是MySQL自定義的協(xié)議,它使用TCP/IP協(xié)議在客戶端和服務(wù)器之間進(jìn)行通信。在URL地址
    的頭像 發(fā)表于 12-06 10:58 ?3124次閱讀

    服務(wù)器集群 IP 地址管理混亂

    服務(wù)器集群為各種關(guān)鍵業(yè)務(wù)提供強(qiáng)大的計(jì)算和存儲(chǔ)能力。但如果服務(wù)器集群的 IP 地址管理混亂會(huì)給服務(wù)的部署和維護(hù)帶來(lái)影響。 服務(wù)器集群與 IP 地址
    的頭像 發(fā)表于 08-01 14:45 ?527次閱讀

    IP地址的分配

    ,全球唯一。 私有IP地址:用于局域網(wǎng)(LAN)內(nèi)的地址,不在互聯(lián)網(wǎng)上傳輸。它們可以在多個(gè)網(wǎng)絡(luò)重復(fù)使用。 私有IP
    的頭像 發(fā)表于 08-09 14:55 ?1962次閱讀

    IP地址小分享

    一、IP地址的作用與重要性 唯一標(biāo)識(shí):在網(wǎng)絡(luò)通信中,每個(gè)連接到互聯(lián)網(wǎng)的設(shè)備都必須擁有唯一的IP地址,這樣才能確保數(shù)據(jù)在網(wǎng)絡(luò)中正確地路由和傳遞。想象一下,如果網(wǎng)絡(luò)
    的頭像 發(fā)表于 09-25 14:21 ?546次閱讀
    <b class='flag-5'>IP</b><b class='flag-5'>地址</b>小分享