2017-04-24 1 views
0

우리는 Joomla를 3.6.5의 최신 버전과 J 디렉토리MySQL의 느린 로딩 - Pagenation

http://www.cmsjunkie.com/j-businessdirectory

의 최신 버전을 사용하고 우리는 개발자들과 의견 차이의 비트를 가지고있다.

디렉토리가 지난 해에 증가했으며 카테고리 당 500 개 이상의 항목이있는 페이지로드가 매우 불량합니다. J 디렉토리는 우리가 많은 수의 항목을 가지고 있기 때문에 그 내용을 말하고 있습니다.

이로드와 관련하여 천천히로드되는 URL을 보시기 바랍니다.이 카테고리에는 약 1100 개의 항목이 있습니다.

http://www.shoppingonline.ie/category/clothes-shops-womens

하지만이 차이를 마우스 오른쪽해서는 안? 결과

의 DB의 그 표시 거대한 많은 양을 온라인 웹 사이트의 1000 년대가있다 아일랜드에서 "자동차"에 대한 66,914 광고를 표시하는 광고 웹 사이트의 예를 아래 참조

donedeal.ie/all?words = 자동차 & 지역 = 아일랜드

그래서 개발자에게 말하고있는 것은 페이지에 표시되는 결과 만 검색하면 안됩니다. 현재 20 개를 입력하고 다음 페이지를로드하고 다음 페이지를로드합니다. 20 개 결과 등

이것이 내가 바르게 작동해야합니까? 확실히 위의 예는 66,914를 검색하지 않습니다. 성능이 좋지 않으면 성능이 떨어지며 현재는 매우 빠르게로드됩니다.

친절 감사

스콧


디바이스에서 응답 아래를 참조하시기 바랍니다.

전체 상황을 오해하고 있어야합니다. Google은 모든 결과를 한 번에 검색하지 않습니다. 보시다시피 한 번에 20 개의 항목 만 검색됩니다. 문제는 mysql이 검색 기준과 일치하는 1000 개의 결과를 모두 거쳐 주문 기준에 따라 주문한 다음 요청한 페이지 창 내에서 20 개의 결과를 가져야한다는 것입니다. 성능 저하의 원인이됩니다. 이것은 버그가 아닙니다. 이것은 MySQL의 성능 제한 사항입니다. 검색 결과가 적어서 검색 결과가 잘 나오고 버그 나 코딩 문제가 없음을 알 수 있습니다. 지금 상황을 분명히 밝혀줬으면합니다. 추천하는 사이트는 다른 데이터베이스 엔진 (유료 데이터베이스 엔진) 또는 Google과 같은 색인을 사용하여보다 효율적이어야합니다.

+0

모든 레코드를로드 한 다음 현재 페이지에없는 레코드를 삭제하지 않아야합니다. 그러나 실행중인 SQL 문을 찾고 백그라운드에서 실제로 일어나고있는 것을 찾을 수 있다면 더 유용 할 것입니다. –

+0

합리적으로 작성한 경우 MySQL이 처리하는 데 필요한 1000 개의 결과 (이상적은 아니지만)는 작습니다. 그러나 검색 기준 및 순서에 대한 검사는 PHP로 데이터를 검색하기 전에 데이터베이스에서 수행해야합니다. 종종 이것은 동적으로 SQL을 생성하는 것을 포함합니다. 선택한 프레임 워크가 이것을 지원할 수 없다면 그 작업에 대한 잘못된 도구 일 수 있습니다. – Kickstart

답변

0

이로드 시간은 분명히 고객을 괴롭 히고 있습니다. 그들은 검색하는 결과의 수를 제한하지 않는 것처럼 보입니다. 귀하의 페이지에 게시 한 링크는 다음과 같습니다.로드하는 데 약 17 초가 걸립니다. http://www.shoppingonline.ie/category/clothes-shops-womens

페이지 # 2를 클릭하면로드하는 데 8.8 초 걸립니다 (여전히 끔찍하지만 더 좋습니다).URL을 주목하라 : http://www.shoppingonline.ie/component/jbusinessdirectory/search/266?Itemid=101&controller=search&categorySearch=266&orderBy=packageOrder 내림차순 & 제한 = 20 & 시작 =

20 = 20 아마 & 제한 개발자는 않고, 보인다 반면, 데이터베이스에서 20 행의 최대를 검색하기 위해 웹 사이트를 이야기하는 방법 모든 것을 움켜 잡도록 그들은 홈 페이지에 같은 제한을 두어야합니다.

귀하의 트래픽이 doubleverify.com으로 전달 된 다음 귀하의 웹 사이트로 전달되는 것 같습니다. Google 애널리틱스와 같은 도구는 사용자가 웹 페이지를 방문한 후 웹 트래픽을 추적하므로 웹 전체에서 반송 될 필요가 없습니다. 나는 당신의 개발자들과 함께 앉아서 실제 페이지에 착륙하기 전에 사용자가 얼마나 많은 웹 사이트를 방문했는지 정확하게 물어볼 것입니다. 그 일은 시간이 많이 걸립니다.

데이터베이스와 관련하여 필자는 J 디렉토리를 사용한 적이 없지만 거의 모든 데이터베이스는 데이터베이스 필드에 인덱스를 넣을 수있는 기능을 제공합니다. 인덱싱은 데이터베이스 쿼리가 완료되는 데 걸리는 시간을 크게 줄여줍니다.

devs도 HTML에 빈 줄이 많이 있습니다.이 경우 브라우저가 빠르게로드되지 않는 웹 페이지의 크기가 두 배로 늘어나거나 세 배가됩니다. 모든 여분의 빈 줄이 없어도 읽을 수있는 형식을 사용할 수 있습니다.

+0

안녕하세요 여러분, 의견을 보내 주셔서 대단히 감사합니다. J 디렉토리의 개발팀에서 위의 응답을 참조하십시오. –

+0

그것은 salesmans canned 대답입니다. 귀하의 웹 사이트에 나열된 사이트는 귀하의 웹 사이트 속도를 늦추는 것과 아무런 관련이 없습니다. 또한이 문제가 해결되지 않습니다. MySQL은 밀리 초 단위로 쿼리를 수행 할 수 있습니다. 그들은이 문제를 해결하는데 아무런 간섭이없는 것처럼 보입니다. – user3795412

0

해당 페이지를 테스트했습니다. 16.x 초의 속도로 매우 느리게로드됩니다. 웹 사이트 속도 최적화에서 많은 작업을 해본 전문가 프리랜서를 고용해야했습니다.

0

우리는 similar performance problem with Mosets Tree을 가졌습니다. 실제 문제를 밝히는 방법은 MySQL의 느린 쿼리 로그 (my.cnf 파일에서 사용 가능해야 함)를 확인하는 것입니다. 그런데 20 개의 레코드 만 표시한다고해서 20 개의 레코드 만 검색한다는 의미는 아닙니다. 또한 문제가 아닐 수도 있습니다 - 문제는 일부 매우 복잡한 쿼리 및/또는 적절한 인덱스가없는 일부 쿼리로 인해 발생할 수 있습니다.

다시 말하지만, 문제의 맨 아래로 내려 가기위한 열쇠는 느린 쿼리 로그를 통해서입니다. 또한 Joomla 디버그를 활성화하고 각 쿼리에 소요되는 시간을 확인할 수 있습니다.