안녕하세요.
2Core 4gb 램의 VPS에 워드프레스를 설치해 사용하고 있습니다.
이전에 본 어떤 최적화 가이드에서는 join_buffer_size의 기준을 램 기가당 1m로 설정하면 충분하다는 글을 보았습니다.
그래서 그대로 설정해두고 별 신경을 쓰지 않고 있었습니다만..
최근에 mysqltuner를 돌려보니 Joins performed without indexes 경고가 떠 숫자가 찍혀있고있고, join_buffer_size의 값을 증가 시키라고 나와 있더군요.
그런데 이 버퍼 사이즈들은 접속자 1명당 추가되는거라, 10명만 접속해도 40mb를 잡아 먹는 걸로 알고 있습니다만...
6m까지 늘려도 계속 더 늘리라는 경고 메세지가 나옵니다.
램이 허용된다면 늘리면 될까요? 아니면 그냥 무시하고 사용해도 별 상관없을지 궁금합니다.
감사합니다.
Joins performed without indexes = 인덱스 없는 컬럼으로 조인하려고 했음
버퍼 크기를 늘리는 것은 땜빵일 뿐, 대체 어떤 개념없는 코드가 인덱스 없는 컬럼으로 조인하려고 하고 있는지 찾아서 수정하는 것이 우선입니다. 인덱스를 사용해서 제대로 조인하면 버퍼가 1MB 미만이라도 대체로 문제가 없습니다. 플러그인이나 테마에서 쿼리를 잘못 짠 것을 DB 튜닝으로 때우려고 하면 한도끝도 없어요.
mysqltuner가 알려주는 문제점들은 한 번씩 검색해 볼 가치가 있지만, mysqltuner가 제시하는 해결책은 한 귀로 듣고 흘리는 것이 상책입니다. 너무 오래된 프로그램인데다가, 애당초 이 프로그램의 타겟 유저가 "쿼리를 잘못 짜놓고 DB 튜닝으로 때우려고 하는 사람들"이다 보니 제대로 된 해결책이 아닌 이상한 튜닝값을 많이 추천하곤 합니다.