2014-09-15 1 views
0

나는 PHP로 작성된 사용자 정의 된 CMS를 가지고 있습니다. 내 웹 사이트에는 2,00,000 개 이상의 게시물이 있습니다. 새 게시물을 게시 할 때 하나의 게시물을 게시하는 데 너무 많은 시간이 걸립니다.새 게시물 도중 전체 데이터베이스 검사

내가 새 게시물을 게시 할 때 전체 데이터베이스를 검사하여 해당 URL이 데이터베이스에 있는지 확인합니다. 존재하는 경우 오류를 표시합니다.

내가 알고 싶은이 URL이 이미 존재하는지 확인하려면 전체 데이터베이스를 검사해야합니다.

게시하기 전에 전체 데이터베이스를 확인하기 때문에 많은 시간이 걸리고 서버가 다운됩니다.

+2

1) URL이 어떻게 생겼는지에 달려 있습니다. 2) 인덱스를 만들면 전체 데이터베이스 **를 통해 실제로 검색하는 경우 매우 이상합니다. – PeeHaa

답변

1

URL이 고유한지 확인하기 위해 데이터베이스를 검사하는 대신 저장하려는 URL 문자열에 새 레코드의 ID를 추가하고 웹 사이트가 이와 같이 작동하도록 구성하면됩니다. 100 값이 고유 기본 키

0

당신이 만약입니다 게시물의 ID가, 어디

mywebsite.com/post/test-post 

사용 뭔가

mywebsite.com/post/test-post/100 

같은 : 같은 예를 들어, 당신이 찾고있는 URL로 대신 게시물의 제목 줄에서 생성 된 URL 사용을 주장합니다. 여기에서하는 일은 조금 어둡습니다. 그런 다음 모든 URL의 해시가 들어있는 테이블을 만들고 해시를 검색합니다. . 그것은 빠른 이진 검색입니다. 해쉬 충돌을 조심해야하기 때문에 문자열을 전체적으로 저장해야합니다.

관련 문제