사용자 친구 목록이 필요한 기능이 포함 된 내 웹 사이트 용 Facebook 응용 프로그램을 만드는 중입니다.큰 세션을 저장하면 응답 시간과 서버 속도가 느려지 는가
친구를 검색하는 것은 문제가되지 않으며, 내가 결정하기 위해 고심하고있는 것은 그들을 저장하는 방법입니다.
- 는 옵션 1- 스토어는 내 MySQL 데이터베이스의 사용자가, 나는 내 데이터베이스가 매우 무거운, 아주 빨리 될 것 같은이 갈하지 않는 것을 선택했다. 또한 Facebook 사용자별로 테이블을 만들어야합니다.
- 옵션 2 - 새로운 친구가 포함되도록 매 30 분마다 업데이트되는 세션에 Facebook 친구 배열을 저장하십시오. 세션이 매 30 분마다 업데이트된다는 사실을 무시하십시오.은 세션 내에 매우 큰 배열이 될 수있는 것을 저장하는 것은 나쁜 생각입니까?
웹 사이트는 많은 양의 트래픽을 수신 할 가능성이 있으므로 이러한 세션을 많이 저장할 것입니다.
나는 경험 많은 개발자이지만 이러한 상황에서 세션에 지나치게 경험하지는 않습니다. 나는 이것이 단순히 나쁜 생각인지 아닌지 알고 싶을뿐입니다.
- 각 배열의 형식은 {0 다차원이다 : 1, 이름 : 조 Bloggs에, 사진 : UID : test.jpg를]
그냥 당신에게 일반적인 친구 배열에 약간의 정보를 제공합니다 , 1 ...}
- 친구 목록은 일반적으로 약 700 개이지만 평균 100 개 항목에서 5000 개 항목까지 다양합니다. 이들은 작지 않습니다!
친구를 저장하는 데 좋지 않은 방법이라면, MySQL을 제외한 다른 옵션에는 어떤 것이 있습니까?
세션이 메모리 (RAM) 사용에 영향을 미칩니 까?
'각 개별 Facebook 사용자를 위해 테이블을 만들어야합니다! '- 그렇게하지 않아도됩니다. 그렇게 생각하면 계획된 데이터베이스 스키마에 결함이있는 것입니다. – DaveRandom
예, 세션은 메모리 사용에 영향을 미칩니다. 실행/읽기가 실행될 때 PHP에서 사용할 수 있기 때문입니다. session_save_handler를 사용하여 데이터베이스에 세션을 저장합니다. (그리고 정말로 무거운 데이터가 세션에 저장되어 있다면 "정상적인"세션 액세스와 테이블을 유지하기 위해 다른 테이블에 데이터를 분할 할 수 있습니다). – djot
데이터베이스로 이동하십시오. 그리고 배열이 무거워지지 않을 것이라고 생각하지 마십시오. 각자의 테이블은 문제가 아닙니다. 그래서 그들이 create query를 발명했습니다.또한, 당신은 필요가 없습니다. meny-to-meny 방식으로 그들을 저장하고 당신은 모두 좋습니다. –