비트 대 부울 열 쿼리해야합니다. 실제로 부울 값에 비트 필드를 사용하면

비트 필드는 데이터의 이진 표현 일 뿐이며 약간 “이상한”방식으로 쿼리해야합니다.

실제로 부울 값에 비트 필드를 사용하면 어떤 이점이 있습니까? 내가 볼 수 있듯이 공간이 유일한 진정한 이점이라고 제안하는 것 같습니다.



답변

개인적 BOOLEAN으로 부울 값으로를 사용합니다 . 그러나 MySQL에서는 [src]BOOLEAN 와 동의어 라는 점에 유의하십시오 .TINYINT(1)

이것은주의하지 않으면 0 또는 1 이외의 값을 가질 수 있음을 의미합니다. 이 문제를 방지하려면 별칭을 사용 TRUE하고 FALSE각각 1과 0으로 그 맵으로, 데이터를 삽입하고 업데이트 할 때.

5.0.3 이전의 완성 BIT을 위해서도 동의어였습니다 TINYINT(1).


답변

올바르게 이해하면 BOOLEAN은 항상 열 당 1 바이트를 사용하지만 BIT (n)은 주어진 비트 수를 유지하는 데 필요한 바이트 수만큼 사용합니다.

따라서 BIT는 약간의 공간을 절약 할 수 있지만 SQL로 쿼리해야하는 경우 BOOLEAN을 사용하는 것이 더 쉽습니다.

응용 프로그램에서 이해하고 응용 프로그램의 단일 필드에 저장된 플래그 집합이 있으면 BIT (n)을 사용하려고합니다. 그러나 SQL에서 쿼리 해야하는 열이 있으면 BOOLEAN을 사용합니다.

예를 들어, 특정 주에 이벤트가 실행되는 경우 플래그를 사용하여 이벤트를 몇 주 동안 기록하고 일주일에 1을 기록하는 응용 프로그램이 있습니다. 데이터베이스에서 데이터를 쉽게 쿼리 할 수있게하려면 두 테이블에서 데이터가 “정규화”되지만 데이터를 데이터베이스에만 저장해야하는 경우 응용 프로그램에서 사용하는 형식으로 유지하는 것이 가장 좋습니다. 에.


답변