Extra Form
PHP PHP 7.4
CMS WordPress

안녕하세요.

 

2Core 4gb 램의 VPS에 워드프레스를 설치해 사용하고 있습니다.

 

이전에 본 어떤 최적화 가이드에서는 join_buffer_size의 기준을 램 기가당 1m로 설정하면 충분하다는 글을 보았습니다.

 

그래서 그대로 설정해두고 별 신경을 쓰지 않고 있었습니다만..

 

최근에 mysqltuner를 돌려보니 Joins performed without indexes 경고가 떠 숫자가 찍혀있고있고, join_buffer_size의 값을 증가 시키라고 나와 있더군요.

 

그런데 이 버퍼 사이즈들은 접속자 1명당 추가되는거라, 10명만 접속해도 40mb를 잡아 먹는 걸로 알고 있습니다만...

 

6m까지 늘려도 계속 더 늘리라는 경고 메세지가 나옵니다.

 

램이 허용된다면 늘리면 될까요? 아니면 그냥 무시하고 사용해도 별 상관없을지 궁금합니다.

 

감사합니다.

  • profile

    Joins performed without indexes = 인덱스 없는 컬럼으로 조인하려고 했음

     

    버퍼 크기를 늘리는 것은 땜빵일 뿐, 대체 어떤 개념없는 코드가 인덱스 없는 컬럼으로 조인하려고 하고 있는지 찾아서 수정하는 것이 우선입니다. 인덱스를 사용해서 제대로 조인하면 버퍼가 1MB 미만이라도 대체로 문제가 없습니다. 플러그인이나 테마에서 쿼리를 잘못 짠 것을 DB 튜닝으로 때우려고 하면 한도끝도 없어요.

     

    mysqltuner가 알려주는 문제점들은 한 번씩 검색해 볼 가치가 있지만, mysqltuner가 제시하는 해결책은 한 귀로 듣고 흘리는 것이 상책입니다. 너무 오래된 프로그램인데다가, 애당초 이 프로그램의 타겟 유저가 "쿼리를 잘못 짜놓고 DB 튜닝으로 때우려고 하는 사람들"이다 보니 제대로 된 해결책이 아닌 이상한 튜닝값을 많이 추천하곤 합니다.

  • profile ?

    안녕하세요 기진곰님

    그렇군요!!!! mysqltuner를 그런 식으로 참고해야 되는 프로그램이군요.

    알려주셔서 정말 감사합니다. 기진곰님 말씀을 듣고, 다른 방식으로 문제를 해결하기위해 슬로우쿼리 로그를 활성화 시킨 후, log-queries-not-using-indexes를 사용 설정했습니다.

    그런데도 뭐가 뭔지 알아볼수가 없어 찾아보니, pt-query-digest를 알게되어 사용해보았습니다.

    아직 해결은 못했지만 또 하나를 새롭게 배워가네요! 다음부터는 mysqltuner를 돌려서 나오는 해결 방법 이외에, 다른 방법을 우선 시도해보도록 하겠습니다. 감사합니다.