🖥️ Back

CTE (Common Table Expression)MySQL에서 모든 쿼리가 임시 결과를 생성한다. 이 임시 결과에 이름 붙인 것이 CTE다. 1. cte_max_recursion_depth 설정대규모 데이터 생성하기에 앞서 최대 재귀 횟수를 지정하는 행의 갯수를 설정한다.SET SESSION cte_max_recursion_depth = 10000000; 2. 더미 데이터 삽입 쿼리 실행해당 스크립트를 실행하면 users 테이블에 1,000,000개의 데이터가 자동 생성된다.INSERT INTO users (name, age)#1부터 시작해서 n+1씩 증가, n JSCODE, MySQL 성능 최적화 입문/실전https://inf.run/DzjSq
INDEX인덱스란 데이터 베이스 테이블에서 검색 성능 속도를 높여주는 자료구조이다. 더 직관적으로 표현하면 데이터를 찾기 위해 특정 컬럼을 기준으로 미리 정렬해놓은 표이다.그래서 주로 WHERE, ORDER BY, JOIN, GROUP BY 등에 사용되는 컬럼에 설정한다. 만약 인덱스가 없다면 테이블 전체를 일일이 다 뒤져야한다.인덱스가 있다면 필요한 위치를 빠르게 찾아가기 때문에 조회 속도가 빨라진다. 1만개의 데이터가 있는 USERS 테이블이 있다.이중에서 age가 23인 사람을 찾을려고한다. 인덱스 없이 조회를 하면 1만개의 데이터를 일일이 다 확인하기때문에 오래걸린다. SELECT * FROM usersWHERE age = 23; #0.141초 나이순으로 정렬된 표(= 인덱스)가 있다면 23로..
1. 개발자가 DB에 SQL 요청을 보낸다.2. MySQL 엔진에서 옵티마이저가 SQL문을 분석한 뒤 빠르고 효율적으로 데이터를 가져올 수 있는 계획을 세운다.어떤 순서로 테이블에 접근할 지, 인덱스를 사용할 지, 어떤 인덱스를 사용할 지등옵티마이저가 세운 계획은 완벽하지 않기 때문에 잘못된 최적화를 할 수 있어 SQL 튜닝이 필요하다.3. 옵티마이저가 세운 계획을 바탕으로 스토리지 엔진에서 데이터를 가져온다.DB 성능 문제의 대부분 원인은 스토리지 엔진에서 데이터를 가져올 때 발생한다. 데이터를 찾기 어렵거나 오래 걸리거나 등그래서 SQL 튜닝의 핵심은 스토리지 엔진에서 데이터를 쉽게 찾을 수 있도록 그리고 적은 데이터를 가져올 수 있도록 수정해야한다.4. MySQL 엔진에서 정렬, 필터링 등의 마지막..
추상클래스란 공통적인 틀은 있지만, 직접 인스턴스를 생성할 수 없는 클래스이다.그래서 자식 클래스가 채워서 완성해야한다. 간단하게 생각하면 추상 클래스는 미완성 설계도이고, 추상 메서드는 설명만 있고 구현은 없다.public abstract class SchoolGroup { //protected는 자식 클래스에서 접근할 수 있도록 허용한다. //static final은 공통 상수로 모든 자식 클래스에 공유된다. protected static final String NOTICE = "초등학교, 중학교는 의무교육이다."; //final은 생성자에서 한 번만 초기화 가능하다. 그이후로 변경 안 됨! protected final int no; protected final Str..
final 키워드는 어디에 붙이느냐에 따라 의미가 다르다.변수(필드, 지역변수 등)에 붙으면 값을 변경할 수 없기에 한 번만 초기화할 수 있다.인스턴스에 붙으면 다른 값을 넣는 것은 안 되는데 필드는 변경 가능하다.메서드에 붙으면 오버라이딩이 안 된다.클래스에 붙이면 상속이 안 된다.public class Animal { //모든 객체가 공유하고 변하지 않는 값 protected static final String NOTICE = "동물은 다 귀엽다"; //생성자에서만 딱 한 번 초기화할 수 있고 이후 수정 불가 private final int head; public String name; public Animal (int head, String name) { ..
다형성이란 하나의 객체가 여러 가지 형태를 가질 수 있는 성질로자바에서는 부모 타입의 참조 변수를 여러 타입의 자식 객체 참조하는 것을 의미한다.더더 쉽게 말하면 상위 클래스가 하위 클래스를 같은 메시지로 다른 동작을 하게끔 만든다.그래서 다형성 성립하기 위해선 상위 클래스와 하위 클래스는 상속 관계여야한다. 자식 클래스 인스턴스는 부모 클래스 자료형에 속한다.반면 반대로 부모 클래스가 자식 클래스에 속하지는 않는다. Animal animal = new Animal("animal", 4); Animal cat = new Cat("cat", 4); //불가! //Cat newCat = new Animal(); instanceof 연산자로 어떤 객체가 특정 클래스의 인스턴스인지 확인할 ..
지구용사
'🖥️ Back' 카테고리의 글 목록 (3 Page)