작은 여유 데이터베이스 공간이 있든 대규모 전자 상거래 웹사이트가 있든 관계없이 데이터베이스가 테이블 구조를 합리적으로 설계하고 공간을 최대한 활용하는 것이 매우 필요합니다. 이를 위해서는 데이터베이스 시스템의 공통 데이터 유형을 완전히 이해하고 합리적으로 적용해야 합니다. 아래에서는 데이터베이스를 구축할 때 좀 더 합리적으로 생각할 수 있도록 돕기 위해 몇 가지 경험과 경험을 소개합니다.
1. 숫자 유형
숫자형은 나의 분류 방법에 따라 정수형, 소수형, 숫자형 세 가지로 분류됩니다.
내가 "숫자 클래스"라고 부르는 것은 동일한 유형인 DECIMAL과 NUMERIC을 나타냅니다. 실제로 숫자를 문자열 형식으로 저장하기 때문에 엄밀히 말하면 숫자 유형은 아닙니다. 해당 값의 각 자릿수(소수점 포함)는 1바이트의 저장 공간을 차지하므로 이 유형은 비교를 위해 공간을 많이 차지합니다. 그러나 뛰어난 장점 중 하나는 소수점 자리가 고정되어 연산 중에 "왜곡"되지 않는다는 점이므로 높은 정밀도를 요구하지 않지만 매우 높은 정밀도를 요구하는 "가격", "금액"과 같은 필드에 더 적합합니다. 정확성.
소수형, 즉 부동소수점 숫자형은 정밀도에 따라 FLOAT, DOUBLE 두 가지 유형이 있다. FLOAT는 약 1.17E-38(0.000...0117, 소수점 뒤에 0이 37개 있음)만큼 작은 절대값을 갖는 소수를 표현할 수 있는 반면, DOUBLE은 절대값을 아주 작게 표현할 수 있다는 장점이 있습니다. 대략 2.22E-308(0.000...0222, 소수점 이하 0 307)을 십진수로 표시합니다. FLOAT 타입과 DOUBLE 타입이 차지하는 저장 공간은 각각 4바이트와 8바이트이다. 소수 필드를 사용해야 하고 정확도가 높지 않은 경우에는 물론 FLOAT를 사용하세요. 하지만 솔직히 말해서 어떻게 우리의 "민간" 데이터가 그렇게 높은 정확도를 요구할 수 있습니까? 저는 지금까지 이 두 가지 유형을 사용하지 않았습니다. 사용하기에 적합한 사례를 본 적이 없습니다.
가장 많이 사용되는 유형이자 가장 신중하게 계산할 가치가 있는 유형은 정수 유형입니다. 단지 1바이트의 저장 공간을 차지하는 TINYINT부터 8바이트를 차지하는 BIGINT까지 "충분"하고 가장 작은 저장 공간을 차지하는 타입을 선택하는 것은 데이터베이스를 설계할 때 고려해야 한다. TINYINT, SMALLINT, MEDIUMINT, INT 및 BIGINT는 각각 1바이트, 2바이트, 3바이트, 4바이트, 8바이트의 저장 공간을 차지하며, 이러한 유형이 표현할 수 있는 최대 정수는 각각 255, 65535, 16777215입니다. , 4294967295 및 18446744073709551615. 사용자의 나이를 저장하는 데 사용되는 경우(예: 데이터베이스에 나이를 저장하는 것은 바람직하지 않음) Jiucheng의 "Zongheng"에서는 Make를 사용하려는 경우 각 스킬 값에 SMALLINT로 충분합니다. 테이블에서 AUTO_INCREMENT의 IDENTIFY 필드는 16,000,000행을 초과하지 않습니다. 물론 INT 대신 MEDIUMINT를 사용하면 각 행이 16,000,000행을 절약하여 10MB 이상을 절약할 수 있습니다.