본문 바로가기
반응형

Database/MYSQL228

DB JOIN 원리 *JOIN 원리 DBMS 작동원리 : 평소에 데이터는 하드디스크의 데이터 파일에 저장해 두었다가 필요한 시점에 메모리로 복사한다. (오라클은 이때 사용하는 메모리를 데이터베이스 버퍼 캐시라고한다) 여기서 중요한 것은 칼럼 100개를 가진 테이블이 하드디스크에 저장되어 있을 때 사용자가 .. 2018. 11. 16.
log_queries_not_using_indexes 인덱스 타지 않은 SQL 수집 SET GLOBAL log_queries_not_using_indexes = 1; SET GLOBAL log_queries_not_using_indexes = 0; 2018. 10. 26.
System variables –log_warnings 에러 로그에 경고 메시지를 생성하는 옵션으로 기본값은 5.7.2이전에는 1, 이후에는 2로 활성되어있다. 5.7.2부터 log_warnings에 의해 관리되는 정보는 log_error_verbosity에 의해 관리되며 log_error_verbosity는 이전 log_warnings 보다 우선 사용된다. log_warnings에 값을 할당하면 log_error_verbosity에도 할당이 되며 반대의 경우에도 마찬가지로 적용된다. log_warnings=0은 log_error_verbosity=1(오류만)으로 수행 log_warnings=1이상은 log_error_verbosity=2(경고)로 수행 log_warnings=2는 log_error_verbosity=3(메모)로 수행 5.7.2부터 log_e.. 2018. 10. 15.
Mysql timeout 종류 및 설명 delayed_insert_timeout : 300 (insert시 delay될 경우 대기하는 시간) interactive_timeout : 3600 (활동중인 커넥션이 닫히기 전까지 서버가 대기하는 시간) net_read_timeout : 30 (서버가 클라이언트로부터 데이터를 읽어들이는 것을 중단하기까지 대기하는 시간) net_write_timeout : 60 (서버가 클라이언트에 데이터.. 2018. 9. 14.
[MySQL] 전문 검색 인덱스 전문 검색(Full Text Search) 인덱스 인덱스 알고리즘은 일반적으로 크지 않은 데이터 또는 이미 키워드화돼 있는 작은 값에 대한 인덱싱 알고리즘이었습니다. 대표적으로 MySQL의 B-Tree 인덱스는 실제 컬럼의 값이 1MB라 하더라도 1MB 전체의 값을 인덱스 키로 사용하는 것이 아니라 1,000바이트(My.. 2018. 9. 14.
Optimize MySQL table_open_cache table_definition_cache System VariableNametable_definition_cacheVariable ScopeGlobalDynamic VariableYesPermitted ValuesTypeintegerDefault-1 (autosized)Min Value400Max Value524288The number of table definitions (from .frm files) that can be stored in the definition cache. If you use a large number of tables, you can create a large table definition cache to speed up opening of t.. 2018. 8. 6.
SQL Yog euckr DB 연결했을때 한글등 깨질경우 처리 mysql> SHOW GLOBAL VARIABLES LIKE '%character%' mysql> SHOW SESSION VARIABLES LIKE '%character%' SQL YOG 접속화면 # Advanced => Init command(s)에 입력함 SET SESSION character_set_client=utf8;SET SESSION character_set_connection=utf8;SET SESSION character_set_database=euckr;SET SESSION character_set_results=utf8;SET SESSION character_set_server=euckr; 2018. 7. 31.
MySQL Block Nested Loop (BNL)에 대한 이해 이번 시간에 살펴볼 내용은 Block Nested-Loop (이하 BNL)입니다. MySQL이 BNL을 제공하는 이유는 Nested Loop 조인만 지원하는 한계점을 보완하기 위해서입니다. 예를 들어, 조인 칼럼 인덱스가 없다고 가정해보죠. 이 경우, ORACLE과 PostgreSQL과 같은 DBMS는 해시 조인 또는 머지 조인을 사용합니다. 그런.. 2018. 6. 20.
Mysql 5.7 유저 생성시 달라진점(CREATE USER) Mysql 5.7 유저 생성시 달라진점(CREATE USER) # 5.7 이전 버젼 GRANT SELECT, INSERT, UPDATE, DELETE,CREATE,EXECUTE ON DB_NAME.* TO 'USER'@'HOST' IDENTIFIED BY 'PASSWORD'; FLUSH PRIVILEGES; # 5.7에서 실행시 경고 "MySQL is started in --skip-name-resolve mode; you must restart it without this switch for this grant to work" "Using GRANT statement to modify existin.. 2018. 5. 16.
MySQL_5.7의 n-gram MySQL5.6부터는 InnoDB에서도 전문검색이 가능하기는 하였지만 공백 기준으로 단어들이 파싱이 되는 “MeCab Full-Text Parser Plugin” 방이라 아쉬움이 많았다. 특히 한국말처럼 공뱁만으로 단어를 파싱할수 없는 그런 언어들이 있기때문이죠. 그런데 MySQL 5.7부터는 n-gram 방식의 전문 검색 인덱스.. 2018. 5. 9.
Mysql sql_mode 항목정리 Full List of SQL Modes • ALLOW_INVALID_DATES 날짜를 완전히 확인하지 마십시오. 달이 1에서 12 사이의 범위에 있고 일의 범위가 1에서 31 사이인지 확인하십시오. 이는 세 개의 다른 필드에서 년, 월, 일을 얻는 웹 응용 프로그램에 유용 할 수 있으며 사용자 날짜 유효성 검사없이 삽입되었습니다. .. 2018. 5. 8.
MySQL Strict mode 끄기/켜기 Strict mode MySQL 의 CHAR 나 VARCHAR 컬럼에 데이타를 입력할 경우 컬럼 사이즈보다 큰 데이타가 입력됐을때 당연히 DB 차원에서 insert 가 안 되는줄 알았다. 그런데 특정 서버에서는 사이즈보다 큰 부분이 truncate 되고 insert 되어 찾아보니 MySQL 서버의 sql_mode 라는 설정의 strict mode에 따라 데이타 검.. 2018. 5. 8.
Mysql 문자열에서 특정문자 개수 구하기 DECLARE @STR VARCHAR(20); SET @STR = '2479_2480_2482'; SELECT CHAR_LENGTH(@STR) - CHAR_LENGTH(REPLACE(@STR,'_','')) ,SUBSTRING_INDEX(@STR," ",(CHAR_LENGTH(@STR) - CHAR_LENGTH(REPLACE(@STR,'_','')))); 결과값: 2 , 2479_2480 2018. 5. 4.
Mysql 5.7 myisamchk 실행시 당황하지 않기 Mysql 5.6 버젼까지는 myisamchk -r mytable.MYI 를 이용하였으나 Mysql 5.7 버젼에서는 에러가 발생한다. # myisamchk mytable Checking MyISAM file: mytable Data records: 17952 Deleted blocks: 0 - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 # myisamchk mytable.MYI myisamch.. 2018. 5. 4.
MySQL 자주 사용하는 쿼리 모음과 관리 팁(링크) 설명글을 너무 잘정리해놓은 곳이 있어 관련 내용 공유 합니다. 링크 : http://blog.kichul.co.kr/2017/03/13/2017-03-13-mysql-note/ 모니터링 1234567891011121314151617181920/* 프로세스 보기 */SHOW PROCESSLIST /* 좀 더 자세히 프로세스 보기 */SHOW FULL PROCESSLIST /* 서버 상태 보기 */SHOW STATUS /* 현재 세션 변수들 */SHOW SES.. 2018. 5. 3.
MySQL 5.6 => 5.7 업그레이드 # MySQL 5.6 주요 서버변수 변경점 중요한 설정 변수의 기본값이 변경되거나 호환성을 위해 설정이 필요한 부분들이 있습니다. MySQL 5.6은 대체로 확장성을 증대시키는 방향으로 기본 설정들이 변경되었으며 binlog_checksum 과 innodb_checksum_algorithm 등 구 버전과의 연계를 위한 호환 설정도 다수 .. 2018. 4. 17.
Mysql Full-text Index 데이터를 이용한 인덱싱 기법 [n-gram parser ] DROP TABLE TB_NAME; CREATE TABLE TB_NAME ( auto_no int not null auto_increment comment '자동증가값', cols1 varchar(200), cols2 text FULLTEXT INDEX ngram_idx(cols1, cols2) WITH PARSER ngram ) # Index 추가 ALTER TABLE TB_NAME ADD FULLTEXT INDEX idx_cols (cols1, cols2) WITH PARSER ngram; CREATE FULLTEXT INDEX ngram_idx ON TB_NAME (cols1, cols2) WITH PARSER ngram; REPAIRE T.. 2018. 4. 17.
Mysql 5.6 과 Mysql 5.7 버젼업시 체크 사항 [datetime] Mysql 5.6 과 Mysql 5.7 버젼업시 체크 사항 # DATETIME 컬럼의 DEFAULT 설정 > 5.6 => DEFAULT '0000-00-00 00:00:00' > 5.7 => DEFAULT CURRENT_TIMESTAMP # TIMESTAMP 일경우 ts1 TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- default 0 ts2 TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP -- default NULL # DATETIME 의 경우 dt1 DATETIME ON UPDATE CURRENT_TIMESTAMP, -.. 2018. 4. 17.
2018년 연차개정으로 인한 연차계산 2018년 연차개정으로 인해 계산방식이 바뀝니다. https://blog.naver.com/cc3729k/221248665312 # 1년차 : 11개부터 차감됨 SELECT MONTH('2018-12-31') - MONTH('입사일자') # 2년차 SELECT 올림(올해월수 + (전년도 근무수/365)*15); SELECT CEIL((MONTH('입사일자')-1) + (((DATEDIFF(CONCAT(YEAR('입사일자'),'-12-31'),'입사일자'))/365)*15)).. 2018. 4. 12.
[Innodb 백업] Percona xtrabackup 설치 및 사용 보통 MySQL 을 백업할땐 mysqldump 를 쓰거나 데이타 디렉토리를 통째로 카피해서 관리하게 된다. mysqldump의 경우 복구시 테이블을 생성하고 다시 데이타를 쌓는 부분이라 복구가 불편하고 거기다 InnoDB에서 외래키를 설정했 을 경우 순서가 맞지 않으면 인서트시에 오류가 발생 할 수도 있다. .. 2018. 3. 16.
반응형