Upgrade to Pro — share decks privately, control downloads, hide ads and more …

mysql-1

garimoo
February 02, 2021

 mysql-1

garimoo

February 02, 2021
Tweet

More Decks by garimoo

Other Decks in Technology

Transcript

  1. 03 아키텍처 InnoDB 스토리지 엔진 PK Clustering MVCC -> Non

    locking consistent read 자동 데드락 감지 Oracle Architecture 적용
  2. 03 아키텍처 QnA Q1. statement-based replication 방식에서 는 REPEATABLE READ

    을 지원, row-based replication 방식에서는 READ COMMITTED 격리 수준을 지원하는 이유는? 그리고 어떤 방식을 선호하는지?
  3. 04 트랜잭션과 잠금 MySQL 엔진의 잠금 Global Lock Table Lock

    User Lock Name Lock FLUSH TABLES WITH READ LOCK LOCK TABLES table_name [READ|WRITE] GET_LOCK / IS_FREE_LOCK / RELEASE_LOCK RENAME TABLE rank TO rank_backup, rank_new TO rank
  4. 04 트랜잭션과 잠금 InnoDB 잠금 종류 Auto Increment Lock •

    innodb_autoinc_lock_mode = 0 • innodb_autoinc_lock_mode = 1 • innodb_autoinc_lock_mode = 2
  5. QnA Q1. USER_LOCK을 사용하는 경우가 있나요? Q2. 우리 설정에서 innodb_autoinc_lock_mode는

    몇인가요? Q3. 우리 설정은 auto-commit인거 같은데, 왜 그런가요? 04 트랜잭션과 잠금
  6. 05 인덱스 유니크 인덱스 (a.k.a 제약조건) 읽는 속도는 일반 인덱스와

    비슷 쓰는 속도는 일반 인덱스보다 느리고 데드락 발생이 쉬움
  7. 07 쿼리 작성 및 최적화 쿼리와 관련한 시스템 설정 STRICT_ALL_TABLES

    STRICT_TRANS_TABLES ANSI_QUOTES ONLY_FULL_GROUP_BY PIPE_AS_CONCAT PAD_CHAR_TO_FULL_LENGTH NO_BACKSLASH_ESCAPES IGNORE_SPACE ANSI
  8. 07 쿼리 작성 및 최적화 날짜 표기 SELECT * FROM

    dept_emp WHERE from_date = ‘2021-01-15’; SELECT * FROM dept_emp WHERE from_date = STR_TO_DATE(‘2021-04-29’,’%Y-%m-%d’);
  9. 07 쿼리 작성 및 최적화 연산자 =, <=> ! &&,

    || /, DIV, %, MOD LIKE REGEXP BETWEEN IN
  10. 07 쿼리 작성 및 최적화 내장함수 IFNULL(), ISNULL() NOW(), SYSDATE()

    DATE_FORMAT(), STR_TO_DATE() DATE_ADD(), DATE_SUB() RPAD(), LPAD() / RTRIM(), LTRIM(), TRIM()
  11. 07 쿼리 작성 및 최적화 Auto Increment 1. PK /

    UK의 일부여야 함 2. Key가 한개면 제약 없음 3. Key가 여러개일 때 a) 맨 앞이면 제약 없음 b) 맨 앞이 아니라면 auto increment column으로 UK를 만들어야 함
  12. 07 쿼리 작성 및 최적화 TABLES DROP TABLE; 5.1 ➡

    global lock 5.6 ➡ table write lock 8.0 ➡ table write lock
  13. 07 쿼리 작성 및 최적화 COLUMNS (5.6) Adding a column

    Dropping a column Reordering columns Changing the column data type Making a column NULL Making a column NOT NULL Rename a column Setting a column default value Dropping the column default value Changing the auto-increment value REBUILD TABLES
  14. 07 쿼리 작성 및 최적화 COLUMNS (8.0) Dropping a column

    Reordering columns Changing the column data type Adding a column Rename a column Setting a column default value Dropping the column default value Changing the auto-increment value Extenting VARCHAR column size Making a column NULL Making a column NOT NULL REBUILD TABLES
  15. 07 쿼리 작성 및 최적화 INDEXES Creating or adding a

    secondary index Dropping an index Adding a FULLTEX index Changing the index Type 5.6 Creating or adding a secondary index Dropping an index Renaming an index Adding a FULLTEX index Adding a SPATIAL index Changing the index Type 8.0