본문 바로가기
DBMS/4. 웹서버-DB서버 통신

# 4-1 mysql2 - 기본

by 혀닙 2022. 3. 26.

목차

  1. 라이브러리 사용 셋팅
  2. 단순한 형태의 쿼리
  3. prepared statement(execute 메서드)

 


 

 

# 1. 환경셋팅

1-1. 라이브러리 설치

$ npm install --mysql2

 

1-2. 가져오기

const mysql =  require('mysql2');

 

1-3. 객체 생성 및 옵션 설정

const config = {
	host: 'localhost',
    user: 'green',
    database: 'soybeanlatte'
}

const connection = mysql.createConnection(config)

 


 

 

# 2. 단순한 형태의 쿼리

1. 간단한 형태

const SQL = 'SELECT * FROM menu WHERE `drink` = `오렌지주스` AND `side` = `콘샐러드`'
connection.query(SQL,( err,result )=>{
	console.log(result)
	})
)

 

2. 플레이스 홀더가 있는 간단한 쿼리

const SQL = 'SELECT * FROM menu WHERE `drink` = ? AND `side` = ?'
connection.query(SQL,['오렌지주스','콘샐러드'],(err,result)=>{
	console.log(result);
})

 

#3. 준비된 구문 (Prepared statement)

  • prepared 구문 사용 시 MySQL은 같은 쿼리에 대해 매번 새로 준비할 필요가 없으므로 성능 향상

 

3-1. execute() 메서드

  • MySQL이 제공하는 execute객체는 구문을 prepare하고, query 한다.

 

const SQL = 'SELECT * FROM menu WHERE `drink` = ? AND `side` = ?'
connection.execute(SQL,['오렌지주스','콘샐러드'],(err,result)=>{
	console.log(result);
})

 

  • 위의 코드와 같이 execute 메서드로 구문을 prepare 및 query 하는 경우,
  • 같은 구문을 다시 execute 할 때, LRU cache에 의해 쿼리 preparation 시간을 절약하고, 더 나은 성능이 발휘될 것이다.

 

3-2. prepare/unprepare() 메서드

  • 사용자는 prepare/unprepare 메서드를 통해 구문을 수동으로 prepare 또는 unprepare 할 수 있다.

'DBMS > 4. 웹서버-DB서버 통신' 카테고리의 다른 글

sequelize  (0) 2022.05.04
시퀄라이즈1. 환경셋팅  (0) 2022.04.29
# 4-3 mysql2 - 프로미스 API  (0) 2022.03.26
# 4-2 mysql2 - 커넥션 풀  (0) 2022.03.26

댓글