2017년 3월 16일 목요일

코드이그나이터, SQL 대신 CSV 로 대체


GAE 요금체계상 SQL 쿼리당 돈을 받는것도 있기 때문에
SQL 쿼리가 빈번하면 요금이 올라간다.. ㄷㄷ

간단한 정보조차 
MySQL 쿼리로 불러오도록 설계 했는데
생각해보니, 요금 압박이 클것만 같았다.

그래서
여러 테이블을 JOIN 안해도 되는 Relation 없는 부분은
MySQL DB 대신 csv 파일에서 불러오도록 했다.

간단히 Model 부분만 수정하면,
View 나 Controller 부분은 수정하지 않아도
DB에서 읽은것처럼 잘 작동한다.

public function get_file()
{
    // fopen 함수로 파일을 연다.
    $fp = fopen("./assets/csv/file_name.csv", "r");
    
    // 헤더가 되는 첫줄을 읽는다.
    $header = fgetcsv($fp);

    // return 할 배열을 만든다.
    $data = array();

    // 파일을 읽는다.
    while ($row  = fgetcsv($fp))
    {
        $arr = array();
        foreach ($header as $i => $col)
        {
            $arr[$col] = $row[$i];
        }
        $data[] = $arr;
    }

    // fopen 함수를 닫는다.
    fclose($fp);

    // 결과를 return 한다.
    return $data;
}

파일은 DB 에서 CSV 로 변환해야 하는데,
MySQL 을 쓴다면 Workbench 에서 Export 하면 쉽게 할 수 있다.

댓글 없음:

댓글 쓰기

ChatGPT 와 AI 미래에 대한 대화, 그리고 감동

우연히 유튜브에서 구글 전 CEO 에릭슈미트가 한 이야기를 보았다. 앞으로 1~2년 사이에 인공지능으로 인해 많은것들이 바뀔것이다. 뭐 이런 이야기는 누구나 할 수 있는 말이다. 책 팔아먹기위해 나온 영상일 수도 있겠지만, 핵심은 영상 뒷부분에 있다....