반응형

MYSQL 25

[MySQL] Table Space

Table Space 물리적인 공간을 뜻합니다. DB는 논리적 공간입니다. 테이블 스페이스르 지정하지 않은경우 시스템 테이블 스페이스에 테이블이 저장됩니다. 시스템 변수 innodb_date_file_path에 관련 내용이 저장됩니다. SHOW VARIABLES LIKE 'innodb_data_file_path'; 성능 향상을 위한 테이블 스페이스 추가 소용량의 데이터를 사용하는 경우 테이블 스페이스를 고려하지 않아도 되나 대용량의 데이터를 운영할 경우 성능향상을 위해 테이블 스페이스의 분리를 적극 고려합니다. 각 테이블이 별도의 테이블 스페이스에 저장되도록 시스템 변수 innodb_file_per_table이 ON으로 설정되어야 합니다. 확인 방법 : SHOW VARIABLES LIKE 'innodb_..

SQL 2022.09.20

[MySQL] VIEW

VIEW 데이터베이스에 존재하는 종의 가상 테이블. 실제로 데이터를 저장하고 있지는 않습니다. 일반 사용자 입장에서 테이블과 동일하게 사용하는 개체 뷰를 생성한 후에는 테이블처럼 접근 가능하여 동일한 결과를 얻을 수 있습니다. MySQL에서는 다른 테이블이나 다른 뷰에 저장되어 있는 데이터를 보여주는 역할만을 수행합니다. ▶ 뷰의 작동 방식 장점 보안 사용자가 중요한 정보에 바로 접근하지 못합니다. 복잡한 쿼리 단순화 긴 쿼리를 뷰로 작성, 뷰를 테이블처럼 사용 가능합니다. 쿼리를 재사용 할 수 있습니다. 단점 CPU 사용으로 인한 처리속도가 저하됩니다. 부모쿼리와 어떤 식으로든 연관된 서브쿼리라서 부모쿼리의 데이터가 변경되는 것에 영향을 받습니다. 한번 정의된 뷰는 변경 할 수 없습니다. 삽입 삭제 갱..

SQL 2022.09.20

[MySQL] INDEX

INDEX 지정한 컬럼들을 기준으로 메모리 영역에 일종의 목차를 생성하는것. INSERT, UPDATE, DELTE(Command)의 성능이 향상 될 수 있다. ▶ 장점 검색 속도가 빨라질 수 있다. 쿼리의 부하가 줄어들어 시스템 전체의 성능이 향상된다. ▶ 단점 인덱스가 DB 공간을 차지해 추가적인 공간이 필요해진다. 대략 DB크기의 10%정도 추가 공간이 필요하다. 처음 인덱스를 생성하는데 시간이 소요된다. 데이터의 변경 작업(Insert, Update, Delete)이 자주 일어나느 경우 성능이 저하될 수 있다. 인덱스의 종류 ▶ Clustered Index '영어 사전' 같은 책과 비슷한 개념 테이블 당 한개만 지정 가능하다. 로우 데이터를 인덱스로 지정한 컬럼에 맞춰 자동 정렬한다. ▶ Seco..

SQL 2022.09.19

[MySQL] GROUP BY

GROUP BY 특정한 열을 그룹화하여 조회한다. * 삼성전자에서 교육을 할 만큼 실무에서 많이 쓰인다. ▶ 기본 문법 SELECT * FROM 테이블명 GROUP BY 열1, 열2... ▶ 그룹화 후 조건 처리 SELECT * FROM 테이블명 GROUP BY 열1, 열2... HAVING 조건 예제 ▶ 상품의 합계를 구한다. SELECT * FROM sample51; +------+------+----------+ | no | name | quantity | +------+------+----------+ | 1 | A | 1 | | 2 | A | 2 | | 3 | B | 10 | | 4 | C | 3 | | 5 | NULL | NULL | +------+------+----------+ SELECT..

SQL 2022.09.17

[MySQL] 데이터베이스 객체, 스키마

데이터베이스 객체 테이블, 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것. 객체는 데이터 베이스 내에서 실체를 가진다. 객체는 이름을 가지며 유니크하다. ▶ 객체 명명규칙 중복이 불가능하다. 숫자로 시작 할 수 없다. 언더스코어(_) 이외의 기호의 사용이 불가능하다. 한글을 사용 할 때는 더블쿼트로 둘러싼다. 시스템이 허용하는 길이를 초과하지 않는다. 이름은 객체의 종류와 상관없이 유니크하다. 스키마 데이터베이스 객체는 스키마안에 만들어지기 때문에 객체의 이름이 같아도 스키마가 다르면 문제가 없고 이 같은 특징 때문에 데이터 베이터베이스를 스키마객체라고 부르기도 한다. 데이터베이스에 테이블을 작성해서 구축해 나가는 작업을 스키마 설계 라고 부른다. 이때 스키마는 SQL명령의 DDL을 이용하며 정의한..

SQL 2022.09.17

[MySQL] ALTER TABLE

ALTER TABLE 테이블내 컬럼을 추가, 삭제, 변경 합니다. 기본적으로 뒷 컬럼에 추가됩니다. ▶ 순서 지정 제일 뒤에 'FIRST' 또는 'ALTER 열 이름' 으로 지정합니다. ▶ 명령어 명령어 설명 ADD 컬럼 추가 MODIFY 컬럼 속성 변경 CHANGE 컬럼 이름 변경 DROP 컬럼 삭제 ▷ 컬럼 추가 ALTER TABLE 테이블명 ADD 열이름 자료형; ALTER TABLE sample62 ADD newcol INT; ▷ 컬럼 속성 변경 ALTER TABLE 테이블명 MODIFY 열이름 자료형; ALTER TABLE sample62 MODIFY newcol VARCHAR(20); ▷ 컬럼 이름 변경 ALTER TABLE 테이블명 CHANGE 기존 열이름 새 열이름 자료형; ALTER TA..

SQL 2022.09.17

[MySQL] EXISTS

EXISTS 한 테이블이 다른 테이블과 ForeignKey와 같은 관게가 있을 때 유용하다. 두 테이블 간의 어떠한 값이 존재하는가를 판단한다. SELECT * FROM 테이블a WHERE EXISTS (SELECT * FROM 테이블b WHERE 테이블b.컬럼명 = 테이블a.컬럼명); ▶ 부정문 SELECT * FROM 테이블a WHERE NOT EXISTS (SELECT * FROM 테이블b WHERE 테이블b.컬럼명 = 테이블a.컬럼명); ▶ IN을 사용하여 같은 결과를 얻는다. SELECT * FROM 테이블명 WHERE 컬럼명 IN (SELECT 컬럼명 FROM 테이블명); SELECT * FROM sample551 WHERE no IN (SELECT no2 FROM sample552); +--..

SQL 2022.09.17
반응형