2010-08-05 4 views
-1

데이터베이스 쿼리를 위해 PHP에 캐싱 시스템을 설정하고 있습니다.mysql 결과를 파일에 저장하는 PHP의 가장 좋은 형식은 무엇입니까?

그래서 "SELECT * FROM table"과 같은 쿼리가 호출되면 해당 쿼리의 캐시 결과 나 결과를 DB에서 직접 반환합니다.

$query = "SELECT * FROM table"; 
[...] 
$data = mysql_query($query); 
[...] 
fwrite($file,json_encode($data)); 
[...] 

문제는 파일에 쿼리 결과를 저장하려고하는데 작동하는 텍스트 형식을 찾을 수 없습니다. json_encode 시도하고 serialize, 및 null 또는 0 반환합니다.이 일을 mysql_fetch_array() 할 필요없이 및 serialize 할 형식이 있나요?

내가 배열로 결과를 변환하지 분명하기 때문에, 내가 JSON으로 얻을 오류입니다 :

Warning: [json] (php_json_encode) type is unsupported, encoded as null 

답변

1

왜 안 :

  1. 사용하는 네이티브 MySQL의 캐시?
  2. 쿼리가 최적화되어 캐시되므로 캐시 할 필요가 없으므로 최적화 할 수 있습니까?
+0

mysql의 내장 캐시에는 익숙하지 않습니다. 나는하려고하니? 나는 db 서버가 그 캐시를 반환하기 위해 여전히 호출 되어야만하기 때문에 그렇지 않을 것이라고 가정했다. 쿼리를 최적화하는 데있어 거대한 앱이며 가능한 한 최적화되어 있지만 DB 통화가 많지 않으며 트래픽 스파이크가 발생하면 모든 것이 중단 될까봐 걱정됩니다 . 앱이 대부분 끝나면 더 많은 것을 최적화 할 수있는 여러 가지 방법을 볼 수 있지만 모든 것을 다시 코딩하는 것은 실제로 옵션이 아닙니다. –

+0

이 페이지에서 시작 : http://dev.mysql.com/doc/refman/5.1/en/query-cache.html – zerkms

+0

ps : 캐싱 된 데이터의 "메가 성능"이 두통을 겪고 있음을 잊지 마십시오. 캐시 무효화 – zerkms

0

처리하는 문제에 대한 완벽한 해결책이 아닐 수도 있지만 Justin Vincent's ezSQL Class은 이와 같은 상황에서 작업 할 때 매우 편리합니다. 클래스에는 위의 질문에서 언급 한 요구를 충족시키는 캐싱 함수가 포함되어 있습니다. (보너스는 좀 더 둔한 PHP를 많이 다루는 것으로 보입니다. < => MySQL 상호 작용도 마찬가지입니다.)

+0

이봐 요, 만약 당신이 나를 downvote 귀찮게하려고, 나는 적어도 설명을 주셔서 감사합니다. 내가 틀렸다면, 위대한 - 나를 교육 시키십시오! –

+0

아니야. 그래도 제안을 가져 주셔서 감사합니다 ... 나는 다음 프로젝트에서 그 클래스를 염두에 두겠다.하지만 지금은 통합하기에는 너무 늦었다. –

관련 문제