학습/실험 목적을 위해 데이터베이스를 공부하면서 배운 몇 가지 기술을 모방하려고합니다. 그리고 MySQL (및 다른 데이터베이스)이이 특정 문제를 어떻게 해결하는지 궁금합니다.데이터베이스의 가변 길이 파일 작성
다른 데이터베이스와 마찬가지로 레코드를 하나의 파일에 나란히 저장하는 응용 프로그램을 작성하고 있습니다. 레코드의 위치를 인덱싱하기 위해 다른 파일을 사용하여 빠르게 찾습니다. 그리고 현재 버전보다 긴 행을 업데이트해야만 정상적으로 작동합니다. 나는 몇 가지 아이디어를 가지고 있지만, 너무 성능 친화적 인 것은 없다.
1,000 레코드 중 200 레코드를 갱신하고 싶다고 가정 해 봅시다. 내 논리에서 행을 시작하는 곳에 파일 커서를 놓고 데이터를 씁니다. 행의 현재 버전이 100 바이트이고 (그리고 101 번째 바이트부터 다음 레코드가 시작한다고 가정 해 봅시다). 새 데이터는 150 바이트 길이이므로 파일 커서를 쓰는 것만으로 다음 레코드의 바이트를 효과적으로 덮어 씁니다.
필자가 아는 바로는 커서에서 파일의 데이터를 "밀어 낼"수 없다는 것입니다. 가능한 경우 가장 성능이 좋은 작업처럼 보이지 않습니다.
새 데이터를 추가하고 현재 행을 NULL 바이트로 바꾸는 옵션이 있습니다. 하지만 그 것 같다가) NULL 바이트 않고 파일을 다시 컴퓨터 작업을 많이 필요로 다시 공간 B)의 낭비,
그리고이 조각 모음의 옵션입니다,하지만 난 준비가 안 그 방향으로 가라.
누구나 다른 데이터베이스가이 문제를 어떻게 처리하는지 알고 있습니까?
이 답변을 주셔서 감사합니다. :) –