[mysql,php] 총 갯수 카운트 가져올때 속도차이 프로그래밍

일요일날 연락이 왔다.

내가 다니는 회사 admin을 만들었는데 member 쪽 속도가 느리다고.. 

CTO가 이미 수정했단다.

문제가 된 부분은 LIMIT로 페이징하면서 총갯수를 구해오는로직 문제였는데.


//1번
$num_result1 = mysql_query("SELECT code FROM tablename");
$num_rows1 = mysql_num_rows($num_result); 

//VS

//2번
$num_result2 = mysql_query("SELECT COUNT(code) as code FROM tablename");
$num_rows2 = mysql_fetch_array($num_result); 
$num_rows2 = $num_row[code];


방식은 2가지로 나눌수있다. 

보통 나는 1번방식의 코딩으로 나름대로 코드중복을 피해서 코딩하고있었는데

구글링 결과.. 속도차이가 엄청 나다고 한다.

위의 소스처럼 해놓고 게시물 10만일때

실행을 해보면 1번 : 2초 이상 VS 2번 : 0.2초 라고한다.


더 좋은방법을 찾아냈다.

where 절이 없을때는 information_schema에 접근해서 아예 부하없이 가져오는방법이다.


SELECT * FROM information_schema.tables WHERE table_name = 'tablename';



출처 : http://88240.tistory.com/entry/PHP-PHP%EB%A5%BC-%EC%95%84%EB%A6%84%EB%8B%B5%EA%B2%8C-%EC%93%B0%EC%9E%90


ps. 코딩할때 깔끔함은 1번이 더 좋은거같다.. 게시물 갯수에따라 상황에 맞게 써야되겠다..

Tag :

Leave Comments