찾다

 >  Q&A  >  본문

MySQL数据表中,用户id这样的自增字段,应该是数字型还是字符型?各有什么优缺点?

如题,设计一张表,id这种自增字段该怎么选择类型?

大家讲道理大家讲道理2788일 전690

모든 응답(2)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-17 15:53:39

    증분 정수를 사용하세요.

    으아악

    id은 일반적으로 음수가 아니므로 UNSIGNED를 사용하세요.
    id은 신분증과 동일하며 NULL이 아니어야 하고, NULL일 수도 없습니다.
    정수인 이유는 두 가지 요소와 관련이 있습니다.

    1. 은 공간을 차지합니다.

    2. 효율성.

    3. MySQL의 AUTO_INCREMENT에서는 문자 유형을 지원하지 않습니다.
      는 공간을 차지한다는 것은 말할 필요도 없습니다. INT형은 고정되어 4个字节형만 차지합니다. 이렇게 많은 양의 데이터를 표현하는데 사용됩니다..-2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647)

    효율성은 인덱스의 구조와 관련이 있습니다. MySQL은 인덱스의 데이터 구조로

    을 사용합니다. 자동 증가 정수를 사용하는 경우 데이터를 삽입하면 노드의 B 树만 발생합니다. 문자열을 사용하면 어디에나 삽입이 발생할 수 있습니다. 이는 노드의 分裂가 발생할 수 있음을 의미합니다. 둘째, 데이터 쿼리 중에 문자열 비교는 정수 비교보다 느립니다. 移动和分裂

    자세한 내용은 다음을 참조하세요.

    기본 키 자동 증가로 인해 데이터베이스 삽입 성능이 저하되나요? 그렇다면 왜 아직도 많은 기업에서 이를 사용하고 있을까요?

    마지막으로, 기본 키는 특정 데이터와 아무 관련이 없다는 점을 지지합니다. = =. 따라서 정수를 기본 키로 사용하는 것이 더 나은 선택입니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 15:53:39

    숫자편의지수

    회신하다
    0
  • 취소회신하다