2013-08-01 3 views
0

나는 일하고있는 웹 사이트를 가지고 있으며, 모두 잘 작동한다. 로드가 진행되는 중에 현재 서버 래그가 발생할 수 있다고 우려하고 있습니다.PHP와 MySQL 쿼리를 어떻게 최적화 할 수 있습니까?

데이터베이스에는 많은 정보가 포함 된 테이블 (14 개 이상의 열과 수백 개의 항목)이 있습니다. PHP 페이지에는 페이지 링크 (페이지 1/6, 다음 페이지, 이전, 처음, 마지막 등)를 생성하는 스크립트가 있습니다. 현재 페이지 당 25 개의 항목을 표시합니다. 스크립트는 페이지 번호에 25를 곱하여 선택에서 시작해야하는 테이블의 항목을 가져옵니다.

너무 끔찍하지는 않습니다. 나는 생각하지 않습니다. 실제 문제는 "페이지 x/y"에서 비롯됩니다. 나가 품목의 얼마나 많은 페이지가 있을지, 또는 얼마나 많은 시간 25가 입장의 수로 들어갈지 알 필요가있는 의미. 나는 이것을 다음과 같이 사용했다.

SELECT count(id) FROM `footwear` 

단지 테이블의 엔트리 수를 얻는 것이다. 그 숫자를 사용하여 모든 페이지를 계산할 수 있습니다. 그게 가장 효율적인 방법일까요? 또는 페이지 수를 계산하는 더 좋은 방법이 있습니까?

+1

아니, 정확히입니다. – Amadan

+1

좋아 보인다. 수백 건의 레코드가 있으면 정상적인 상황에서 성능 문제가 발생하지 않아야합니다. – ironcito

+1

이것은 백만 건의 기록으로 눈에 띄게 속도가 느려질 것이라고 생각하지 않습니다. – bansi

답변

1

인덱스가 id인지 확인하고 MySQL에서 매우 빠릅니다.

속도가 느린 것으로 판단되면 마음을 진정시키기 위해 항상 측정 할 수 있습니다.

1

당신이 MyISAM을 사용하고 있다면 스토리지 엔진으로 InnoDB를 사용한다면 행 수를 캐시하거나 별도의 테이블에 저장할 수 있습니다. 그 이유는 MyISAM이 테이블의 행 수를 기록하지만 InnoDB는 쿼리를 수행 할 때마다 모든 행을 계산합니다.

이 정보가 도움이되기를 바랍니다.

관련 문제