PHP - MySQL DB 다루기 ( 데이터베이스 / 디비 / database / mysql_fetch_assoc / Colum / Colums / 칼럼 )
PHP - MySQL DB 다루기 ( 데이터베이스 / 디비 / database / mysql_fetch_assoc / Colum / Colums / 칼럼 ) |
MySQL 열 읽어오기 ( mysql_fetch_assoc / Colum / Colums / 칼럼 )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php $conn=mysql_connect("localhost","아이디","패스워드"); mysql_select_db("데이터베이스명", $conn); mysql_set_charset("utf8"); $query = "SELECT * FROM 테이블"; // order by store (정렬) $result = mysql_query($query); if (!$result) { echo "Could not successfully run query ($query) from DB: " . mysql_error(); exit; } if (mysql_num_rows($result) == 0) { echo "No rows found, nothing to print so am exiting"; exit; } // MySQL 열 읽어오기 while ($row = mysql_fetch_assoc($result)) { echo $row["no"] ."|" .$row["store"] ."<br>"; } ?> | cs |
MySQL 읽기 속도 관련
http://cricri4289.blogspot.com/2013/10/php-mysql-mysqli-mysqlifetchrow.html
천만개 정도 데이터 양이 있을때, object()와 assoc()의 성능을 비교해 보면 15초 이상 차이난다.
array()와 assoc()에서는 큰 차이를 보이진 않는다. 4초 정도 되려나. object()와 assoc()에서 15초 이상 차이가 나서 1초가 아주 작아 보인다. 0.1초라도 줄이기 위해 노력 하는데 ... 4초도 정말 큰 시간이다.
스택오버플로우 같은 곳들을 뒤지다 보니 mysqli_fetch_array() 함수를 잊으라고 추천한다.
row()와 assoc()은 따로 비교되지 않았다. row()가 만들어놓은 배열 index와 필드명을 이어 주는게 필요해 보이는데... 성능 차이가 거의 없는걸까. 아무래도 row()가 가장 빠를 것 같다.
아무튼, mysqli_fetch_row() 또는 mysqli_fetch_assoc()을 사용하자.
* mysql_*() 함수들은 PHP 5.5.0 버전에서 부터 DEPRECATED 되었고, 미래에 함수 자체가 지워질 것이라 한다. 확장격인 mysqli나 PDO_MySQL을 사용하자.