Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да съхранявате IP в mySQL

Бих предложил да разгледате какъв тип заявки ще изпълнявате, за да решите кой формат да приемете.

Само ако трябва да извадите или сравните отделни октети, ще трябва да обмислите разделянето им на отделни полета.

В противен случай го съхранете като цяло число от 4 байта. Това също има бонуса, че ви позволява да използвате вградения MySQL INET_ATON() и INET_NTOA() функции.

Ефективност спрямо пространство

Съхранение:

Ако ще поддържате само IPv4 адреси, тогава вашият тип данни в MySQL може да бъде UNSIGNED INT който използва само 4 байта място за съхранение.

За да съхранявате отделните октети, ще трябва да използвате само UNSIGNED TINYINT типове данни, а не SMALLINTS , което ще използва по 1 байт за съхранение.

И двата метода биха използвали подобно хранилище с може би малко повече за отделни полета за някои допълнителни разходи.

Повече информация:

Ефективност:

Използването на едно поле ще доведе до много по-добра производителност, това е едно сравнение вместо 4. Споменахте, че ще изпълнявате заявки само срещу целия IP адрес, така че не трябва да има нужда да държите октетите отделни. Използване на INET_* функциите на MySQL ще извършат преобразуването между текстовото и целочисленото представяне веднъж за сравнение.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изпълня *.sql mysql файл в моето C# приложение

  2. Преобразува ли се BLOB с помощта на текущия/подразбиращ се набор от знаци в MySQL?

  3. SQL - Получаване на резултат само за текущата година

  4. Не мога да инсталирам mysql2 gem на macOS Sierra

  5. процедура в mysql