윈도우서버 CPU 100% 원인 모바일앱 서비스중 윈도우 서버 CPU가 100%가 되어 클라이언트 로딩 및 통신하는데 렉이 발생하는 일이 생겼다. 원인이 무엇일까? 원인 파악부터 해보았다. 1. php로 개발한 API 파일에 문제가 있는 것일까?자주 호출되는 API 중 쿼리문에 문제가 있다고 판단하여 쿼리튜닝을 했다. 불필요한 쿼리문 삭제 및 조인을 이용하여 최적화를 시켰지만 똑같은 현상이 발생했다. ㅠ 2. 서버 환경설정 문제인가?my.ini 파일에 동시접속자수 관련된 설정을 추가 하고 서버 재실행 했지만 CPU 100%. OTL [mysqld]max_connections = 500wait_timeout = 60 3. mysql console에 현재 실행중인 프로세스 검사 CPU 100%인 상태에서 m..
mysql where 서브쿼리 사용하기 서브쿼리를 좀더 일찍 알았더라면 더 쉽고 빠르게 API를 뽑아내지 않았을까..WHERE문에서 서브쿼리를 사용하는 방법입니다.참 쉬워요. 언어는 PHP를 사용했습니다. select count(*) from savemoneyhistory where sourceId = (SELECT sponsorContentId FROM sponsorcontents where sponsorId = '".$sponsorId."');"; savemoneyhistory 데이터베이스에서 sourceId의 조건에 맞는 데이터의 갯수를 가져오는 쿼리입니다. 서브쿼리는 SELECT, FROM, ORDER BY 문에도 사용할 수 있습니다.사용하게 하면 업데이트 하도록 할게요.
phpmyadmin auto_increment 초기화 phpmyadmin에서 데이터베이스를 관리하던 중 auto_increment를 초기화해야 하는 상황이 생겼다. 런칭시점이다. 테이블에 있던 데이터를 삭제하고 다시 추가 하니 no 필드의 auto_increment값이 삭제하기 전의 최신 번호 다음으로 생성이 되었다. 진작부터 인지는 하고 있었지만 머 특별한 이슈가 아닌 것으로 판단이 되었지만 이력관리 및 통계를 잡을 때 no 값이 필요하기 때문에 초기화 할 수 밖에 없는 상황이 되었다. 1. auto_increment 초기화할 테이블 선택 후 상단에 테이블작업을 클릭한다. 2. 중앙 좌측의 Table options에 AUTO_INCREMENT를 1로 수정한다. 3. 실행 버튼 클릭 후 빠져나옵니다. #..
[php] mysql 연동하여 join, where 쿼리 사용하기 안드로이드용 스도쿠 게임에 사용될 API를 개발하는데 join문을 사용하게 되었다. 일반적으로 사용하는 쿼리select, update, delete는 이제 어느정도 파악이 된듯하다. 사실 착수한 스도쿠 게임은 간단해서 api 기능 또한 단순하다. 단순 호출하고 json으로 내려주는 형식이다. 그러나, join을 한번 써보기로 했다. 이때 조금씩 해봐야지 언제 하겠나. join문도 여러가지가 있지만 기본 쿼리문을 사용하겠다. 여기서 중요한건 호출 url에서 get 방식으로 userid를 받아오기 때문에 해당 userid의 데이터만 추출해야 한다. 그래서 join on + where이 동시에 사용된다. 테이블 상태 테이블명 필드 userinf..
PHP date 형식 변환 함수 ▲PHP PHP에서 date를 스트링으로 받아와서 데이터베이스에 넣어야하는 상황에서 문제가 발생했다.지금 RSS에서 받아오는 date format은 3가지로 분류되었다. case 1. 2014-10-24case 2. 2014/10/24case 3. 2014.10.24 date format은 대부분 Ymd 형식으로 들어오는데 일부 RSS에서 case 1. 14-10-24case 2. 14/10/24case 3. 14.10.24 이런식으로 ymd 형식으로 들어오는 RSS가 있다는것을 발견했다. date format 변경하는 것은 간단하다. ■ 소스코드$date=str_replace(".","-",$date);$date=str_replace("/","-",$date);$date..
snoopy를 이용한 게시판 긁어오기 프로젝트 고도화건으로 인해 PHP를 하게되었다. 프로젝트 내용은 이렇다. 특정 사이트들의 게시판을 긁어와서 날짜순으로 정렬한 다음 DB에 저장하고 API호출을 이용해 클라이언트단에서 보여줘야한다. ▲그냥 스누피 첫번째, 게시판을 RSS로 변환하자각 사이트마다 html 구문이 다르기 때문에 뭔가 효율적인 방법을 찾아야했다. 그러다가 우연히 RSS를 제공하지 않은 게시판 형식의 글을 RSS로 만들어 주는 사이트를 발견했다. http://feed43.com 와우! RSS는 xml로 표현되기 때문에 파싱도 쉽겠다. RSS로 변환만 해주면 차후 추가되는 사이트들 등록도 쉽게 할 수 있을 것 같다. RSS변환하는 방법은 나중에 포스팅 해야겠다. Html 파싱은 변수가 너무 많다..