나는 형식 아 파크 내 데이터베이스에서 데이터의 엄청난 금액을 가지고가장 좋은 방법
예를 들어lat;lon;speed;sec:lat;lon;speed;sec......
:
53.284534;50.227268;67;0:53.285481;50.226627;68;6:53.286429;50.226042;66;12:.......
형식은 경도, 속도, 처음부터 두 번째의 수, lattitude입니다 . 각 문자열의 길이는 1000에서 100000입니다. gzcompress() 및 base64_encode()를 통해 데이터베이스에 저장하기 전에 압축하려고합니다. gzcompress 및 base64_encode 다음에 초기 문자열 길이가 7607 인 경우 3444, 이되므로 압축률은 50 %입니다. 문자열을 압축하는 더 효과적인 방법이 있습니까?
더 많은 공간을 절약해야하는 경우 당연히 바이너리 데이터에서 gzcompress()를 시도 할 수 있습니다. 곱해진 정수 값은 부동 소수점과 다르게 압축 될 수 있습니다 (더 잘 압축 될지 예측하기는 다소 어려울 지 모르지만, 정수가 잘 압축 될 것이라고 생각하는 경향이 있습니다. 아마도 많은 바이트 스트림이 중복 될 수 있기 때문입니다). Bzip2와 lzma는 언급 할 가치가있는 두 가지 매우 빠르고 압축 방법입니다 (lzma는 가장 빠름). –
그것에 대해 생각해보십시오. 첫 번째 값 집합을 절대 값으로 저장 한 다음 차이점 만 저장할 수도 있습니다. 이것은 매우 잘 압축됩니다. 정수를 사용하는 경우 변경 사항의 크기에 따라 첫 번째 세트를 32 비트 정수로 저장 한 다음 차이 세트를 16 비트 또는 8 비트 단어로 저장할 수 있습니다. 바이트를 저장하고 바이트 값을 초과하면 단일 업데이트에 대해 두 개의 차이 세트를 저장할 수 있습니다. (어, 이해가 되니?) –
그리고 "차이 세트"는 아마도 매우 잘 압축 될 것입니다. –