欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用mysql的inet_aton()和inet_ntoa()函數(shù)存儲IP地址的方法分享

 更新時間:2012年03月24日 00:37:45   作者:  
當(dāng)前很多應(yīng)用都適用字符串char(15)來存儲IP地址(占用16個字節(jié)),利用inet_aton()和inet_ntoa()函數(shù),來存儲IP地址效率很高,適用unsigned int 就可以滿足需求,不需要使用bigint,只需要4個字節(jié),節(jié)省存儲空間,同時效率也高很多
mysql> create table jackbillow (ip int unsigned, name char(1));
Query OK, 0 rows affected (0.02 sec)

mysql> insert into jackbillow values(inet_aton('192.168.1.200'), 'A'), (inet_aton('200.100.30.241'), 'B');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> insert into jackbillow values(inet_aton('24.89.35.27'), 'C'), (inet_aton('100.200.30.22'), 'D');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from jackbillow;
+------------+------+
| ip | name |
+------------+------+
| 3232235976 | A |
| 3362004721 | B |
| 408494875 | C |
| 1690836502 | D |
+------------+------+
4 rows in set (0.00 sec)

mysql> select * from jackbillow where ip = inet_aton('192.168.1.200');
+------------+------+
| ip | name |
+------------+------+
| 3232235976 | A |
+------------+------+
1 row in set (0.00 sec)

mysql> select inet_ntoa(ip) from jackbillow;
+----------------+
| inet_ntoa(ip) |
+----------------+
| 192.168.1.200 |
| 200.100.30.241 |
| 24.89.35.27 |
| 100.200.30.22 |
+----------------+
4 rows in set (0.00 sec)

當(dāng)前很多應(yīng)用都適用字符串char(15)來存儲IP地址(占用16個字節(jié)),利用inet_aton()和inet_ntoa()函數(shù),來存儲IP地址效率很高,適用unsigned int 就可以滿足需求,不需要使用bigint,只需要4個字節(jié),節(jié)省存儲空間,同時效率也高很多。

如果IP列有索引,可以使用下面方式查詢:

mysql> select inet_aton('100.200.30.22');
+----------------------------+
| inet_aton('100.200.30.22') |
+----------------------------+
| 1690836502 |
+----------------------------+
1 row in set (0.00 sec)

mysql> select * from jackbillow where ip=1690836502;
+------------+------+
| ip | name |
+------------+------+
| 1690836502 | D |
+------------+------+
1 row in set (0.00 sec)

mysql> select inet_ntoa(ip),name from jackbillow where ip=1690836502;
+---------------+------+
| inet_ntoa(ip) | name |
+---------------+------+
| 100.200.30.22 | D |
+---------------+------+
1 row in set (0.00 sec)

對于LIKE操作,可以使用下面方式:

mysql> select inet_ntoa(ip) from jackbillow;
+----------------+
| inet_ntoa(ip) |
+----------------+
| 192.168.1.200 |
| 200.100.30.241 |
| 24.89.35.27 |
| 100.200.30.22 |
| 192.168.1.100 |
| 192.168.1.20 |
| 192.168.2.20 |
+----------------+
7 rows in set (0.00 sec)

mysql> select inet_aton('192.168.1.0');
+--------------------------+
| inet_aton('192.168.1.0') |
+--------------------------+
| 3232235776 |
+--------------------------+
1 row in set (0.00 sec)

mysql> select inet_aton('192.168.1.255');
+----------------------------+
| inet_aton('192.168.1.255') |
+----------------------------+
| 3232236031 |
+----------------------------+
1 row in set (0.00 sec)

mysql> select inet_ntoa(ip) from jackbillow where ip between 3232235776 and 3232236031;
+---------------+
| inet_ntoa(ip) |
+---------------+
| 192.168.1.200 |
| 192.168.1.100 |
| 192.168.1.20 |
+---------------+
3 rows in set (0.00 sec)

mysql> select inet_ntoa(ip) from jackbillow where ip between inet_aton('192.168.1.0') and inet_aton('192.168.1.255');
+---------------+
| inet_ntoa(ip) |
+---------------+
| 192.168.1.200 |
| 192.168.1.100 |
| 192.168.1.20 |
+---------------+
3 rows in set (0.00 sec)

相關(guān)文章

  • MySQL?分庫分表的項目實踐

    MySQL?分庫分表的項目實踐

    當(dāng)用戶量級上升,寫請求越來越多,這時需要用到分庫分表,本文就介紹了MySQL?分庫分表的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2022-04-04
  • 了解MySQL查詢語句執(zhí)行過程(5大組件)

    了解MySQL查詢語句執(zhí)行過程(5大組件)

    這篇文章主要介紹了了解MySQL查詢語句執(zhí)行過程(5大組件),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • mysql 索引詳細介紹

    mysql 索引詳細介紹

    這篇文章主要介紹了mysql 索引詳細介紹的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Centos6.9安裝Mysql5.7.18步驟記錄

    Centos6.9安裝Mysql5.7.18步驟記錄

    本文給大家詳細介紹了Centos6.9安裝Mysql5.7.18的步驟,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-06-06
  • MySql 中聚合函數(shù)增加條件表達式的方法

    MySql 中聚合函數(shù)增加條件表達式的方法

    這篇文章主要介紹了MySql 中聚合函數(shù)增加條件表達式的方法,需要的朋友可以參考下
    2018-06-06
  • mysql條件查詢and or使用方法及優(yōu)先級實例分析

    mysql條件查詢and or使用方法及優(yōu)先級實例分析

    這篇文章主要介紹了mysql條件查詢and or使用方法及優(yōu)先級,結(jié)合實例形式分析了mysql條件查詢and or基本功能、用法及優(yōu)先級相關(guān)操作技巧,需要的朋友可以參考下
    2020-04-04
  • 在Qt中操作MySQL數(shù)據(jù)庫的實戰(zhàn)指南

    在Qt中操作MySQL數(shù)據(jù)庫的實戰(zhàn)指南

    QT連接Mysql數(shù)據(jù)庫的步驟相對繁瑣,但是也是一個不錯的學(xué)習(xí)經(jīng)歷,下面這篇文章主要給大家介紹了關(guān)于在Qt中操作MySQL數(shù)據(jù)庫的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • MySQL中RANK()函數(shù)的介紹和用法

    MySQL中RANK()函數(shù)的介紹和用法

    這篇文章主要介紹了MySQL中RANK()的介紹和用法,通過RANK()函數(shù),我們可以方便地為查詢結(jié)果進行排序并為每個行分配排名,本文介紹了RANK()函數(shù)的概念和使用方法,并通過示例和輸出結(jié)果向讀者展示了具體的操作步驟和效果,感興趣的朋友一起看看吧
    2023-07-07
  • 保障MySQL數(shù)據(jù)安全的一些建議

    保障MySQL數(shù)據(jù)安全的一些建議

    這篇文章主要介紹了MySQL數(shù)據(jù)安全的一些建議,幫助大家平時更好的運維數(shù)據(jù)庫,保障數(shù)據(jù)安全,感興趣的朋友可以了解下
    2020-08-08
  • 關(guān)于mysql?left?join?查詢慢時間長的踩坑總結(jié)

    關(guān)于mysql?left?join?查詢慢時間長的踩坑總結(jié)

    這篇文章主要介紹了關(guān)于mysql?left?join?查詢慢時間長的踩坑總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論