본문 바로가기

Programing (프로그래밍)/PHP 및 그누보드

PHP - MySQL DB 다루기 ( 데이터베이스 / 디비 / database / mysql_fetch_assoc / Colum / Colums / 칼럼 )

728x90
반응형



 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 되었고, 미래에 함수 자체가 지워질 것이라 한다. 확장격인 mysqliPDO_MySQL을 사용하자.





728x90
반응형