Query 12

MySQL PK 순서

pk 순서가 중요하다고 알고있다. 왜 중요한걸까? PK 인덱스 때문이다. PK 순서대로 인덱스가 되기때문에 중요하다고 한다. 생성된 PK 순서대로 PK Index가 적용되기 때문에 큰 범위에서 작은 범위의 컬럼으로 나열하는 것이 좋다. 복합키는 일반적으로 카디널리티 순으로 구성하되, 조회/입력 방법에 따라서 적절히 순서를 바꿔서 구성하거나 새로 인덱스를 추가하면 된다. (근데 인덱스 덕지덕지도 안좋으니 주의) 인덱스의 두번째 컬럼은 첫 번째 컬럼에 의존해서 정렬되어 있습니다. 즉, 두번째 컬럼의 정렬은 첫번째 컬럼이 똑같은 열에서만 의미가 있습니다. 만약 3번째, 4번째 인덱스 컬럼도 있다면 두번째 컬럼과 마찬가지로 3번째 컬럼은 2번째 컬럼에 의존하고, 4번째 컬럼은 3번째 컬럼에 의존하는 관계가 됩니..

Database 2021.02.10

Spring Batch

배치 : 사용자의 추가적인 개입없이 실행되는 프로그램 = 일괄 작업특징 상용 대형컴퓨터나 서버에는 일반적으로 시스템 사용자에 의해 실행된다.특정시간에 자동으로 실행되도록 정의한다.백그라운드에서 실행된다.배치작업보다 우선순위가 높고 포그라운드(전면)에서 실행되는 인터랙티브 프로그램이 사용자의 요청을 기다리는 시간에 실행된다. [ 위키피디아 ]https://ko.wikipedia.org/wiki/%EC%9D%BC%EA%B4%84_%EC%B2%98%EB%A6%AC [ 배치 ]http://www.ibm.com/support/knowledgecenter/ko/SSGRP3_2.1.0/doc/iwd/mpt_vsys_db2_working.html [ 배치 프로그램 튜닝 ]http://m.dbguide.net/dbgui..

Spring MVC 2019.01.18

[MySql] DISTINCT , GROUP BY

DISTINCT의 결과를 정렬된 결과가 아니지만, GROUP BY는 정렬된 결과를 보내준다. GROUP BY의 작업을 크게 "그룹핑" + "정렬"로 나누어서 본다면, DISTINCT는 "그룹핑" 작업만 수행하고 "정렬" 작업은 수행하지 않는 것이다. 그런데, 여기서 "정렬"은 "그룹핑" 과정의 산물이 아닌 부가적인 작업이다. 가끔 어떤 사용자는 DISTINCT가 마치 함수인 것처럼 (괄호를 사용하여) 아래와 같이 사용을 하는데 만약 fd1 컬럼은 unique 값, fd2는 전체 값을 원한다면 절대 그 결과를 얻을 수 없다. SELECT DISTINCT(fd1), fd2 FROM tab; SELECT 문장에 DISTINCT라는 키워드가 있으면, MySQL은 SELECT되는 모든 컬럼(튜플)들에 대해서 DI..

Database 2018.05.10

[MyBatis] #, $ 차이

2021.03.17 업데이트) # => Prepared Statement (동적) 쿼리문을 실행하기에 앞서 구문 분석, 의미 분석, 파싱 작업을 진행하여 SQL Injection 코드를 만나게 되면 오류 발생함 (SQL Injection 대비 가능) $ => Statement (정적) 쿼리 실행시마다 옵티마이저의 수행 계획 달라짐 여기서 유념해야 할 부분은 # 을 사용했을 때에는 ? 으로 치환이 되는 반면에 $ 를 사용한 케이스에서는 $ 영역에 100이라는 상수로 치환되어 쿼리를 수행하게 된다. 중요한 포인트는 101, 102, 103 과 같이 숫자가 바뀔 때마다 파싱 작업을 항상 진행해야 한다라는 것이다. 성능상에 단점이 존재한다라는 것을 알 수 있다. 변수로 인식하지 않게하기 위해서 #{param} ..

Database 2017.06.15

SQL JOIN

[DBGuide.net JOIN]http://www.dbguide.net/db.db?cmd=view&boardUid=148197&boardConfigUid=9&categoryUid=216&boardIdx=134&boardStep=1 두 개 이상의 테이블 들을 연결 또는 결합하여 데이터를 출력하는 것을 JOIN이라고 하며, JOIN은 관계형 데이터베이스의 가장 큰 장점이면서 대표적인 핵심 기능이라고 할 수 있다. 일반적인 경우 행들은 PRIMARY KEY(PK)나 FOREIGN KEY(FK) 값의 연관에 의해 JOIN이 성립된다. 하지만 어떤 경우에는 이러한 PK, FK의 관계가 없어도 논리적인 값들의 연관만으로 JOIN이 성립 가능하다. FROM 절에 여러 테이블이 나열되더라도 SQL에서 데이터를 처리할..

Database 2017.01.06

SQL 문법 (수정중)

출처를 기록하지 못했습니다. mongodb & other dbhttp://haru.kafra.kr/16 SQL문은 대소문자를 구분하지 않지만 데이타는 대문자와 소문자를 구분한다. 주석을 다는 방법은 /* 주석 */ 이거나 한줄만 주석 처리를 할 경우는 문장 맨앞에 --를 붙인다.각각의 데이타베이스의 SYSOBJECTS 테이블에 해당 데이타베이스의 모든 정보가 보관되어 있다. SYSOBJECTS의 TYPE 칼럼으로 'U'=사용자 테이블, 'P'=저장 프로시저, 'K'=프라이머리 키, 'F'=포린 키, 'V'=뷰, 'C'=체크 제약등 오브젝트 이름과 정보를 알 수 있다 1. 기본 검색 1. USE 문을 사용한 데이타베이스 선택 데이타 검색 USE 데이타베이스명 2. 모든 칼럼 불러오기 SELECT * FRO..

Database 2016.10.17
반응형