변수는 같은 세션에서만 사용이 가능하다.



set @number = 2;

select @number;



아래의 Query를 실행 시켜보면 2가 출력 되는 것을 볼 수 있다.



sec_to_time(value) 형태를 띄고 있다. 아래의 Query를 실행 해보자.



select sec_to_time(1500);


00:25:00



정상적으로 시간이 출력 되는 것을 확인 할 수 있다.


'Database' 카테고리의 다른 글

Mysql procedure 사용하기  (0) 2012.12.12
Mysql 변수 사용하기  (0) 2012.12.11
Mysql 문자열 결합하기  (0) 2012.12.10
Mysql Table 데이터 삭제 하기  (0) 2012.12.10
Mysql Table 레코드 복사하기  (0) 2012.12.07


concat(element...); 과 같은 형태를 띄고 있다.



select concat ('a', 'b', 'c');



문자열이 결합 되어 abc 로 출력 되는 것을 볼 수 있다.


'Database' 카테고리의 다른 글

Mysql 변수 사용하기  (0) 2012.12.11
Mysql sec_to_time 숫자를 시간으로 바꾸기  (0) 2012.12.11
Mysql Table 데이터 삭제 하기  (0) 2012.12.10
Mysql Table 레코드 복사하기  (0) 2012.12.07
Query에 대한 고찰  (0) 2012.12.07


truncate [table_name] 명령어를 이용하게 되면 테이블이 삭제 되지는 않고, 레코드만 삭제 할 수 있다.



truncate tb_test;





게시판을 만들 때 대표적으로 페이징 테스트를 하고 싶을 경우. 많은 데이터가 필요하다. 테이블의 레코드를 복사하여 Insert 하는 방법을 알아보자.



insert into tb_test (column...)

select column... from tb_test where ...



위와 같은 형태로 Query를 작성하여 실행하면 된다. Sequence가 있을 경우에는 신경 쓰도록 하자.



복잡한 Query vs 여러 개의 Query


쿼리를 설계할 경우에는 복잡한 쿼리 하나가 좋을지 혹은 간단한 쿼리 여러 개가 좋을 지 심각하게 고민 해봐야 한다. 전통적으로는 데이터베이스를 설계할 때 소수의 쿼리로 가능한 많은 일을 하도록 해왔다. 이런 방식은 네트워크 통신 비용과 쿼리 파싱 및 최적화 단계의 오버헤드 때문에 역사적으로 더 좋은 결과를 보여왔다.


지금은 다르다. 최신 네트워크는 예전에 비해 굉장히 빨라졌고, 네트워크 지연도 줄어들었다. 가능한 적은 쿼리를 사용하는 편이 좋으나, 여러개의 쿼리를 이용하는것이 오히려 더 효율적일 때도 있다. 


실제로 어플리케이션 중 한번에 쿼리를 사용 하는게 아니라 여러 행의 컬럼을 각각 따로 불러오기 위해 여러 번에 걸쳐 쿼리를 수행하기도 한다.


여러 개의 쿼리로 분해 하기 위해서는 쿼리 자르기, 조인 분해 이런 기법 들이 있다.


※ 참고 서적: [Mysql 성능 최적화 - 베론 슈와츠, 피터 제이트세브, 바딤 카첸코, 제레미 자워드니, 아르엔 렌츠, 데렉 볼링 지음][04장 쿼리 성능 최적화]



Mysql을 Windows에서 서비스 구동 시 에러가 나는 경우 이다. DHCP 할당 IP가 아닌 내부 네트워크 IP로 고정적으로 설정을 해주었을 경우. 위와 같은 에러가 발생 할 수 있다.


Windows 서비스 MySQL55 는 아래 설정 파일을 참고하여 구동 된다.


--defaults-file="C:\ProgramData\MySQL\MySQL Server 5.5\my.ini" 파일을 수정 하자.



// ...


# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
# server_type=3
[mysqld]
bind-address=192.168.xxx.xxx


// ...



bind-address를 현재 내부 IP로 설정 해주고 서비스를 시작 하면 정상적으로 작동 한다.


접속 할 때는 localhost 가 아닌 192.168.xxx.xxx 로 하도록 하자.


'Database' 카테고리의 다른 글

Mysql Table 레코드 복사하기  (0) 2012.12.07
Query에 대한 고찰  (0) 2012.12.07
Mysql Timestamp Column 생성 하기  (0) 2012.12.06
Mysql root 비밀번호 변경하기  (0) 2012.12.03
Oracle 덤프 뜨기  (0) 2012.11.26


timestamp column 생성



ALTER TABLE tb_test ADD create_date TIMESTAMP(10)  NOT NULL DEFAULT current_timestamp



default 값으로 현재 시간을 적용 한다.


'Database' 카테고리의 다른 글

Query에 대한 고찰  (0) 2012.12.07
Mysql Windows Can''t connect to MySQL server on 'localhost' (10061)  (0) 2012.12.07
Mysql root 비밀번호 변경하기  (0) 2012.12.03
Oracle 덤프 뜨기  (0) 2012.11.26
count() 에 대해서  (0) 2012.11.16

+ Recent posts