2014-11-30 2 views
-1

클라이언트 (웹 및 모바일)에서 PHP 서버로 다소 복잡한 양식 데이터를 받고 있습니다. 데이터를 받으면 어떤 방식 으로든이를 처리 할 필요가 없습니다. 단지 어딘가에 저장하고 클라이언트가 양식이 성공적으로 제출되었음을 알리면됩니다. 나중에 데이터를 일괄 적으로 처리합니다.PHP : 처리없이 양식 데이터를 저장하는 가장 빠른 방법

들어오는 양식 데이터를 신속하게 저장하는 가장 좋은 방법은 무엇입니까?

두 기능은 이러한 맥락에서 관련 같다 :

, 그것은 많은 것 텍스트 파일에 추가하는 것이 더 빠릅니다.

누군가 이러한 정보를 더 제공 할 수 있습니까?

+1

json 인코딩하여 스크립트에 쓰기 권한이있는 파일에 기록하십시오. – r3wt

+0

JSON 인코딩보다 적은 시간이 소요될 것이라고 생각합니다. – treecoder

+1

아마, 직렬화 또는 json으로 인코딩 된 양식 데이터를 저장하기 위해 Redis를 사용하면 우아한 해결책이 될 것입니다. –

답변

-1

나는

base64_encode(serialize($_POST)); 

// assuming $array is the returned mySQL column (BLOB type) 
unserialize(base64_decode($array)); 

가 base64_encode는 선택 사항이며 또는 인코딩 할 필요가 없을 수도 있습니다 저장된 데이터에 달려 있습니다 고려할 것입니다.

+0

base64_encode의 목적은 무엇입니까? –

+0

글쎄, 모든 종류의 데이터를 MySQL (전자 메일 본문, PHP 코드, jpeg 파일 및 모든 종류의 문자가 포함 된 문자열)에 저장 한 경험이 있다면 base64_encode는 원활한 CRUD 작업을 보장합니다. 그러나이 경우에는 과잉이라고 동의합니다. –

+0

위의 어느 것도 base64를 올바르게 저장해야합니다. 또한 크기가 약 30 % 증가합니다. 네가하는 일을 알고 있니? ;-) –

-2

데이터를 저장하는 가장 빠른 방법은 PHP를 사용하는 것이 아니라 사용중인 웹 서버에 C 확장명을 작성하여 파일을 저장하는 것입니다. 가장 빠른 것은 이 아니고이 가장 좋습니다. 한 시간에 수조 건의 요청을 처리하지 않는 한, 적어도 인라인으로 처리하고, 관계형 DB 또는 객체 DB에 저장하는 것이 좋습니다. 나는 개인적으로 MySQL이나 Mongo에 대해 경험이 있기 때문에 직접 갈 것입니다. 그러나 많은 다른 데이터 저장소가 적절할 수 있습니다.

"단순히 파일에 추가"하여 데이터베이스를 능가하려고하면 많은 문제가 발생할 수 있습니다. 데이터베이스는 이미 동시 작업에 대한 지원을 많이하고 쓰기, 캐싱, 트랜잭션 지원 등을 최적화합니다. 여러 웹 요청에서 파일에 동시에 "추가"하면 손상된 데이터로 끝납니다.

나는 그것의 약간의 무응답을 알고 있지만 당신이 물어 보았던 질문의 유형이 기껏해야 잘못되었다는 것을 경험했다. "가능한 가장 빠른 방법"을 절대적으로 필요로한다면 Stack Overflow에 대해 질문 할 필요가 없을 것입니다. 왜냐하면 10 년 이상을 투자 해 왔던 최첨단 개발 환경에 자신을 갖게 되었기 때문입니다. 그러한 구현을 만드는 경험을 쌓았습니다.

0

POST에서 텍스트를 가져와야하는 경우 직렬화없이 일반 POST 요청을 얻을 수 있습니다.

echo file_get_contents('php://input'); 

파일에 추가하는 것은 꽤 빠릅니다. 그러나이 파일을 관리해야 할 필요가 있음을 기억하십시오.

P. 조숙 한 최적화처럼 보입니다.

관련 문제