나는 10,000+ 다른 파일의 데이타베이스가 있고 나는 5 초마다 그 데이타베이스에서 4 개의 무작위 것을 움켜 잡을 필요가있다.10,000 개 이상의 다른 파일이 있으며 매 5 초마다 4 개를 가져와야합니까?
건축가를위한 제안 사항이 궁금합니다. 플랫 파일 또는 sqlite를 사용하려고 생각하고 있습니까? mysql을 통해이 작업을 수행하는 것이 매우 느린가?
나는 10,000+ 다른 파일의 데이타베이스가 있고 나는 5 초마다 그 데이타베이스에서 4 개의 무작위 것을 움켜 잡을 필요가있다.10,000 개 이상의 다른 파일이 있으며 매 5 초마다 4 개를 가져와야합니까?
건축가를위한 제안 사항이 궁금합니다. 플랫 파일 또는 sqlite를 사용하려고 생각하고 있습니까? mysql을 통해이 작업을 수행하는 것이 매우 느린가?
그냥 일반화 된 접근 를 작동합니다 위에서 언급 한. 대신 1203 초마다 selectRandomGroups()
을 실행하십시오.
selectRandomGroups()
은 매 실행마다 selectRandom()
120/5 회를 실행합니다. 결과 저장소를 일부 저장소 (캐시)에 저장합니다.
다음으로 캐시에서 마지막 그룹을 가져 오는 5 초마다 grabRandomGroup()
을 사용하십시오. 제거하십시오.
결정적 이름 (0.dat, 1.dat 등)이있는 디렉토리에 파일을 넣고 직접 읽습니다.
파일 시스템의 B 트리 및 캐싱이 나머지를 처리합니다. 이것이 정확히 설계된 것입니다.
매우 많은 관계형 DB 배경에서 비롯된 첫 번째 반응은 데이터베이스 시스템의 "NoSQL"문서 유형을 권장하지 않습니다. 그러나이 경우에는 기본적으로 하나의 큰 해시 테이블이 필요합니다. 나는 MongoDB 나 CouchDB 같은 것을 볼 것이다. 여기에서 차이점을 볼 수 있습니다 (http://www.mongodb.org/display/DOCS/MongoDB,+CouchDB,+MySQL+Compare+Grid).
다른 많은 기능은 Amazon S3 또는 유사한 기능을 사용하여 "클라우드"에이 정보를 저장하는 것이고 곧 많은 양을 확장해야하고 내부 용량이 필요하지 않다고 생각하면됩니다.
그렇지 않으면, 파일 시스템 아이디어는 selectRandom()
절차 모든 오초이 너무 지저분한 것입니다 실행도
ps 파일이나 파일에 대한 링크를 얼룩으로 저장하고 있습니까? –
전체 이미지 파일 대신 이미지에 대한 링크를 저장하지 않는 이유는 무엇입니까? 5 초마다 4 개의 파일 이름을 반환하는 쿼리는 mysql 서버에로드가 많이 걸리지 않아야합니다. 아마 동일한 서버에 다른 DBMS를 설치하고 실행하는 것보다 작을 것입니다.
이것이 웹 사이트의 일부 유형이라고 가정하면 자바 스크립트로 임의의 파일 이름을 생성하여 사용자 시스템으로 오프로드하고 이미지에 필요한 모든 작업을 수행 할 수 있습니다.
귀하의 의견은 귀하의 파일이 같은 테이블에 저장되어 있다고 생각합니다. 왜 이런 일이 너무 느릴까요?
SELECT * FROM files WHERE approved = 1 AND type = image ORDER BY RAND() LIMIT 4
그리고 왜 스크립트에게 69,120 파일을 가져 와서 디렉토리 또는 무엇이든에 기록 24 시간마다 실행하는 빠른 것입니까? 그러나 확실히, 당신은 그것을 할 수 있습니다. 위 쿼리에서 한도를 변경하십시오.
BTW, 파일이 디스크에 저장되어 있고 테이블에 파일 이름 (링크)이있는 경우에도 위 내용이 적용됩니다. –
왜 MySQL이 매우 느릴 것이라고 생각하십니까? 10K 레코드 테이블은 MySQL에서 "작음"으로 간주됩니다. –
이미 말한 데이터베이스를 변경 하시겠습니까? –
MySql에서 매 5 초마다 임의의 테이블 4 개를 잡아 당기는 것은 내 오히려 미끼 인 mysql 서버에서하고 싶은 것이 아닙니다. 그래서 나는 대안을 찾고있다. – Steven