MySQL Explain type에 따라 서버 부하 개선되나요?
본문
안녕하세요!
MySQL에 질문이 있습니다.
현재 안쓰는 노트북 싱글코어.. 서버가 있습니다. (공개용 X / 공부용)
CentOS 6.8 / 32bit / PHP7 / Nginx / MariaDB
PHP에서 5초마다 새로운 값이 테이블에 insert 되고 있습니다. (하루 최소 값 5,000개 이상)
그리고 10초마다 해당 테이블에서 조건에 맞는 값을 select 하여 임무(?)를 실행합니다.
예)
select * from test_table where id in (select id from ids) or key not in (select key from keys);
최근 테이블에 값이 늘어남에 따라 select 할 때마다 top 명령어에서 mysqld 프로세스 CPU 50%를 초과, CPU 사용률 100퍼에 가까워져서 튜닝.. 알아보다가 Explain을 알게 되었습니다.
Explain select type이 ALL로 나와서 일단 index로 수정을 하였습니다.
select type을 ALL에서 index로 index에서 range로.. 상위 단계로 올라가면 cpu 사용량을 줄이고,
서버 부하를 줄일 수 있나요?
아니면 서버 성능 업글 밖에 답이 없을까요?
답변 1
일일등록 insert row 가 이 5000정도면 적지 않은것 같습니다.
튜닝도 좋지만,
서버업글도 필요해보이고
웹과 db를 분리하는것도 .. 고려대상
단, 중요한건 무리한 업글은 하지 마시고,
금전적이던지, 상황적으로 형편에 맞는것으로 적절하게 유지하세요
optimize 로 어느정도 개선이 됐다면
주기적인 튜닝을 실행하시는것이 일단은 좋지 않을까 싶구요
금전적인 여유가 되시면 서버를 탄탄하게 준비하시는건 필요해보입니다.
답변을 작성하시기 전에 로그인 해주세요.