사용 사례 : 호텔 객실 예약 가능.바이너리 시퀀스 저장/질의 rdbms는 그만한 가치가 있습니까?
정규 방법 :
이 열 가용성의 테이블 유무 : 365 행 (의미
가능 (INT) hotel_id, (날짜) 날짜, (부울) 우리는 일년 고려하는 경우 날짜
일을에 인덱스 호텔 당 가용성)의 난 시도하고 싶습니다 :
은 기둥, 트러스, 빔과 가용성의 테이블이 MNS (int)를 hotel_id (? BIGINT) 가용성
호텔 당1 행, 비트 연산자를 사용하여 쿼리/업데이트 가능 여부를 확인하는 방법은 다음과 같습니다
SELECT * FROM table WHERE (availability & mask) = mask
질문 :
성능 현명한 그만한 가치가 있니?
2000 년 호텔, 호텔 당 1 개 이상의 제안, 제안 당 365 개 이상의 가용성 기록, 5 개 이상의 웹 사이트/앱 제공에 대한 귀하의 성명을 이해하고 완전히 동의하지만 귀하는 내 걱정을 이해할 수 있습니다. 아니 SQL DB를 접근 방식은 내가 정말 행복하게 공부할 수있을거야하지만 난 아직도 여기 어떻게 도움이 될지 모르겠다. 제안 해 주셔서 감사합니다. – redben
저는 여전히 비트 마스크 솔루션에 대한 좋은 인덱싱을하는 것이 더 나을 것이라고 생각합니다. 2000 * 365는 아직 백만 열의 약 3/4에 불과하며 실제로 그렇게 큰 것은 아닙니다. DB에 병목 현상이있는 기존 시스템이 있습니까? 일반적으로 비트 마스크 솔루션을 사용하기 전에 Db/서버 구성, 쿼리 최적화 및 인덱싱을 모두 시도합니다. 비트 마스크를 추적 할 수 있다고해도 시스템을 상속하는 사람에게는 큰 골치 거리를 남기고 누군가는 결국 잘못된 정보를 사용하여 잘못된 데이터를 얻습니다. –