MySQL Basics


MySQL?

가장 대중적인 관계형 데이터베이스. 같은 분야에서 PostgresQL이 기능과 성능면에서 더 우수하다는 이야기가 있어 차후에는 PostgresQL기반으로 프로젝트를 진행해 볼 예정이다.

또 MySQL은 AWS의 RDB서비스를 이용하면 백업 등 편의 기능을 포함해 GUI로 엄청 간편하게 이용할 수 있는데 여기서 디스크 방식을 실수로 IOPS당 과금정책을 매기는 Provisioned IOPS SSD로 선택해서 요금폭탄을 맞지 않도록 조심해야 한다.(이 방식이 어떤 경우에는 요금절약에 도움이 될 수도 있다.)

서비스 중인 서버 안에서(localhost) DB를 이용하고 싶은 경우에는 어짜피 과금정책이 똑같은 EC2인스턴스를 사용하는 게 편할지도 모른다.

Query

SELECT *
FROM table
WHERE column='항목이름';

SELECT column1,column2
FROM table
WHERE index='0';

INSERT

INSERT INTO 'table'
('column1','column2','lastcolumn')
VALUES
('value1','value2','lastvalue');

UPDATE

UPDATE 'table'
SET counter = counter + 1,
value = newvalue
WHERE index='0';

SQL문 활용

pymysql,django-mysql 등등 라이브러리의 cursor로 웹 어플리케이션에서 받은 입력으로 바로 DB를 기록한다. 크롤러를 통해 수집한 데이터를 바로 DB에 기록한다.

ex) 학교 홈페이지에서 여태까지 시행된 모든 급식을 크롤링해 Database에 저장했다.

최적화

모든 DB에서 쿼리는 최대한 단순하게 이뤄져야 한다. json형식이라면 {“text”: “ㅁㅁㅁ”, “freq”: 1} 보다는 {“ㅁㅁㅁ”:1} 형식이 빠른 쿼리에 도움이 된다.