복붙노트

[SQL] MySQL은 매장 IP 주소에 가장 효율적인 방법 [중복]

SQL

MySQL은 매장 IP 주소에 가장 효율적인 방법 [중복]

어떤 가게에 가장 효율적인 방법이다와 MySQL에서 IP 주소를 검색? 지금은하고 있어요 :

SELECT * FROM logins WHERE ip = '1.2.3.4'

IP는 VARCHAR (15) 필드입니다.

이 작업을 수행하는 더 좋은 방법이 있나요?

해결법

  1. ==============================

    1.IPv4 주소의 경우도 마찬가지 부호없는 int로 보관하고 숫자 값에서 IP 주소를 반환 할 INET_ATON ()와 INET_NTOA () 함수를 사용하고, 그 반대도 할 수 있습니다.

    IPv4 주소의 경우도 마찬가지 부호없는 int로 보관하고 숫자 값에서 IP 주소를 반환 할 INET_ATON ()와 INET_NTOA () 함수를 사용하고, 그 반대도 할 수 있습니다.

    예:

    SELECT INET_ATON('127.0.0.1');
    
    +------------------------+
    | INET_ATON('127.0.0.1') |
    +------------------------+
    |             2130706433 | 
    +------------------------+
    1 row in set (0.00 sec)
    
    
    SELECT INET_NTOA('2130706433');
    
    +-------------------------+
    | INET_NTOA('2130706433') |
    +-------------------------+
    | 127.0.0.1               | 
    +-------------------------+
    1 row in set (0.02 sec)
    
  2. ==============================

    2.당신은 단지 IPv4 주소를 저장하려면, 당신은 32 비트 정수 필드에 저장할 수 있습니다.

    당신은 단지 IPv4 주소를 저장하려면, 당신은 32 비트 정수 필드에 저장할 수 있습니다.

    당신은뿐만 아니라 IPv6를 지원하려면 다음 문자열이 기술적으로 16 바이트 VARBINARY () 필드에 저장할 수 있지만 (아마도 가장 쉬운 읽기 / 사용 방법, 그것은 SQL 문을 생성하기 위해 노력하고 성가신 것 ) "손으로"IP 주소를 선택합니다

  3. ==============================

    3.가장 중요한 것은 반드시 열이 인덱싱되었는지 확인하는 것입니다. 이 IP 주소를 기반으로 쿼리에 큰 차이를 만들 수 있습니다.

    가장 중요한 것은 반드시 열이 인덱싱되었는지 확인하는 것입니다. 이 IP 주소를 기반으로 쿼리에 큰 차이를 만들 수 있습니다.

  4. ==============================

    4.무엇이든 함께 작동하도록 당신을위한 가장 쉬운 방법입니다. 당신이 프로파일에 의해 문제가 알 때까지 크기 나 속도 문제는 문제가되지 않습니다. 일부의 경우, 문자열은 부분 일치를해야 할 경우보다 쉽게 ​​작업 할 수 있습니다. 당신이 그것에 대해 걱정에 실제 원인을하지 않는 한하지만 공간이나 성능 문제로, 그것에 대해 걱정하지 마십시오.

    무엇이든 함께 작동하도록 당신을위한 가장 쉬운 방법입니다. 당신이 프로파일에 의해 문제가 알 때까지 크기 나 속도 문제는 문제가되지 않습니다. 일부의 경우, 문자열은 부분 일치를해야 할 경우보다 쉽게 ​​작업 할 수 있습니다. 당신이 그것에 대해 걱정에 실제 원인을하지 않는 한하지만 공간이나 성능 문제로, 그것에 대해 걱정하지 마십시오.

  5. ==============================

    5.어쩌면 정수 필드에 직접 정수 값을 저장? IP 주소는 기본적으로 4 "반바지"입니다.

    어쩌면 정수 필드에 직접 정수 값을 저장? IP 주소는 기본적으로 4 "반바지"입니다.

    그것을 체크 아웃 : http://en.kioskea.net/faq/945-converting-a-32-bit-integer-into-ip

  6. from https://stackoverflow.com/questions/2542011/most-efficient-way-to-store-ip-address-in-mysql by cc-by-sa and MIT license