라벨이 mysql인 게시물 표시

database 설계 시 주의사항

1. pk 순서를 where clause에서 사용하는대로 잡자. ...작업을 한다면 where clause 맞추는게 나을것 같다. 2. 어떤 조건으로 결과 셋을 줄여 나갈지 확인하자. 큰 범위의 결과는 되도록 뒤에 두자. 3. 식별자 관계 - 부모 pk를 자식의 pk 속성이 되는 관계 비식별자 관계는 부모 pk가 자식 pk의 속성이 아닌경우 식별자 관계시 자식 테이블을 대상으로 하는 query식이 점점 늘어난다. 비 식별자 관계일 경우 join문이 복잡하게 쓰일 수 있다. 이력테이블 관리. 이력테이블은 시간의 따라 레코드가 증가하는 테이블. 레코드가 많을 경우 처리시간이 오래 걸리는 특징이 있다. 관리 방법은 기본이 되는 그냥 한 테이블로 관리하는 방법과 마지막 상태를 저장하는 테이블과 이력테이블을 한쌍으로 관리 하는 방법이 있다. 주의 할점은...역시나 인덱스를 타느냐 마느냐. 적은 범위의 인덱스를 태울수 있는가에 대한 방법이다. 테이블 분리와 통합 통합된다면 너무 많음 트랜젝션이 몰릴 수 있는가? 없는가? 제약사항 조건을 거는데 문제가 있는가 고려할 것 분리된다면 조인에 의한 개발 및 성능에 영향과 테이블 관계의 복잡도을 고려 가장 명확한 구분 방법은 논리적 구조 판단 ㅡㅡ;;;; pk를 잡는이유는 테이블의 특성과 fk로 활용할 경우 무결성이 보장 되기 때문이다.

linux에서 일반 계정으로 mysql 설치 하기

1. mysql 다운로드 (Source 버전)  -  http://www.mysql.com/downloads/mysql/#downloads 2. 서버로 복사 (pscp를 사용) 3. 압축해제  - tar -xvzf mysql-5.6.10.tar.gz 4. 압축 해제한 문서에서 아래의 명령어 실행  cmake -DCMAKE_INSTALL_PREFIX=/<path>/ \ -DWITH_EXTRA_CHARSETS=all \ -DMYSQL_DATADIR=/data -DENABLED_LOCAL_INFILE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DSYSCONFDIR=/<path>/etc \ -DMYSQL_DATADIR=/<path>/data \ -DMYSQL_UNIX_ADDR=/<path>/tmp \ -DDEFAULT_CHARSET=utf8 \ -DWITH_EXTRA_CHARSETS=all \ -DMYSQL_TCP_PORT=4406 make & make install cmake 설정 정보 http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html#option_cmake_sysconfdir 5. /<path>/etc에 my.cnf 작성 [client] port = 4406 #mysqld에 로커로 접속할 때 사용할 socket 정보 위치. 아래 mysqld의 socket과 일치하면 된다. socket = /home/ktc/mysql-5.6.10/tmp/mysqld.sock [mysqld_safe] pid-file = /home/ktc/mysql-5.6.10/pid/mysqld.pid err-log = //home/ktc/mysql-5.6.10/log/mysql.log # The MySQL server [mysqld] user=ktc...

mysql utf-8 설치하기

mysql 버전 : C:\xampp\mysql\bin>mysql --version mysql  Ver 14.14 Distrib 5.5.27, for Win32 (x86) my.ini 설정 [client] default-character-set = utf8 [mysqld] character_set_server=utf8 collation_server=utf8_general_ci init_connect=set collation_connection=utf8_general_ci init_connect=set names utf8 character-set-server=utf8 character-set-client-handshake = TRUE [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 * 테이블 생성 시 아래와 같이 해야 한다. (만약 기존 테이블에 데이터가 있다면 =_=;; 짜증날꺼 같다...ㅋ) mysql> create table users (     -> id varchar(10) primary key,     -> name varchar(20) not null,     -> password varchar(10) not null)     -> charset=utf8; * 참고 window 사용자라면 cmd /U 로 커맨드창으로 열어야 utf-8 문자를 읽을 수 있다.

[MySQL] MySQL 테이블 수정 데이터베이스

이름 바꾸기 ALTER TABLE tablename RENAME bbs; 컬럼 속성 수정 ALTER TABLE tablename MODIFY colname INT NOT NULL AUTO_INCREMENT PRIMARY KEY ; ALTER TABLE tablename MODIFY 컬럼이름 컬럼속성 컬럼 이름 바꾸기 ALTER TABLE tablename CHANGE colname newcolname INT NOT NULL AUTO_INCREMENT ; CHANGE 는 컬럼 속성뿐아니라 이름도 바꿔준다. 컬럼 추가 ALTER TABLE bbs ADD name varchar ( 10 ) ; ALTER TABLE tablename ADD 컬럼이름 컬럼속성 컬럼 삭제 ALTER TABLE bbs DROP colname; 특정 컬럼 뒤에 새로운 컬럼 추가 ALTER TABLE bbs ADD newcol varchar ( 10 ) AFTER num; num 컬럼 뒤에 newcol 컬럼 추가. 기존 컬럼을 지우고 맨 앞에 컬럼 추가 ALTER TABLE bbs DROP newcol , ADD newcol VARCHAR ( 10 ) FIRST; 맨 앞에 추가하려면 FIRST를 사용한다. PRIMARY KEY 속성 삭제 ALTER TABLE test DROP PRIMARY KEY ; 이미 PRIMARY KEY인 컬럼의 속성을 바꿀 때 PRIMARY KEY 속성은 지정하지 말고, NOT NULL 속성을 함께 지정해 주면 기존 PRIMARY KEY 속성은 그대로 남은 상태로 컬럼의 속성을 변경할 수 있다. ALTER TABLE test MODIFY a CHAR ( 1 ) NOT NULL ; 테이블의 내용 전체 삭제 TRUNCATE TABLE tablename; 트랜잭션에 의해 복구될 수 없다.