나는 많은 다른 연산을 수행하는 (mysql에 저장되어있는) 많은 도메인 엔티티를 가지고있다. 각 작업은 다른 프로그램에서 실행됩니다. 나는 비트 필드 (bitet)로 사용되는 긴 필드 'flowstate'로 구현 된 이러한 엔티티들에 대해 (플로우) 상태를 유지할 필요가있다. 은 컬럼에 대해서만 비트 연산을 수행 할 때 '상태'컬럼에 유용한 mysql 인덱스인가?
내가 같은 것을 할 특정 조작받은 기관에 대한 MySQL의 쿼리 : (작업 7 cooresponding) 비트 7을 나타내는select * from entities where state >> 7 & 1 = 1
을 실행하고있다. (< - 간략화)
어쨌든, 처음에는이 설정의 성능 관련 사항에 신경을 쓰지 않았고 위의 쿼리가 꽤 느리게 실행되기 때문에 약간 문제가 있다고 생각합니다.
내가 알고 싶은 점 : 'flowstate'의 mysql 색인이 도움이 되나요? 결국 Mysql이 바이너리 정렬 등을 사용하여 신속하게 찾을 수있는 단일 값이 아닙니다.
그렇지 않다면 속도를 높이기 위해 할 수있는 다른 일이 있습니까? . 위와 같은 유스 케이스가있는 필드에 대한 특별한 '마스크 인덱스'가 있습니까?
TIA, 거트 얀
불행히도 미리 정의 된 순서는 아닙니다. 예 : 프로그램의 결과에 따라 비트 7 또는 8이 설정 될 수 있습니다. 재 설계를 살펴 보겠습니다. –