사용자가 추가 한 이미지가 많은 웹 사이트를 만들고 있습니다.이 SQL 쿼리를 가장 효과적으로 만들 수 있습니까?
이 풀에서 하나의 이미지를 임의로 선택하여 사용자에게 표시하고 싶지만 이전에이 이미지를 본 적이없는 사용자인지 확인하고 싶습니다.
그래서 나는 생각했다 : 사용자가 이미지를 볼 때 MYSQL에서 "이 USER가이 이미지를 (시간)에 보았습니다"라는 모든 내용의 INSERT 행을 만듭니다. 그러나 많은 사용자와 많은 이미지가있을 수 있으므로이 테이블은 수천 개의 항목으로 빠르게 빠르게 커질 수 있습니다. 모든 USER에 대해 INSERT 행을 만들려고했는데 하나의 필드에서 사용자가 본 이미지의 모든 ID를 배열에 삽입합니다.
I도 할 수있는 배열에 : base64_encode (gzcompress (직렬화 ($ 배열)
: 그리고 때 unserialize (gzuncompress (base64_decode ($ 배열))
당신은 내가 어떻게 생각하십니까 해야합니까? 인코딩/디코딩 기능이 빠르지 않습니까? 또는 게시물의 시작 부분에 설명했던 기존 방식보다 적어도 빠릅니까?
큰 압축 데이터를 하나의 데이터베이스에만 저장할 수 있습니까? 필드? (상상해 사용하는 경우 r은 수천 개의 이미지를 보여왔다?)
덕분에 많이
사용자가 실제로 이미지를 "본"것을 어떻게 알 수 있습니까? 무작위로 충분할 수도 있습니다. :) 어떻게 임의의 이미지를 선택하고 있습니까? –