본문 바로가기

DataBase/MySQL

[펌] [MySQL] MySQL WITH 재귀쿼리 계층구조 MySQL 에서도 재귀쿼리가 된다;;너무 심플해서 울뻔;; ㅎㅎㅎ 참 마리아 디비에서도 된다. 테스트 해봄. [MySQL] MySQL WITH 재귀쿼리 계층구조 보통 WITH 문 재귀쿼리 를 이용해서 계층 구조를 나타내는데 사용한다. 일단 재귀쿼리란..? 재귀 - 원래의 자리로 되돌아가거나 되돌아옴 이란 뜻을 갖고 있다. 쉽게 생각하면 같은걸 반복한다고 생각하면 쉬울까.. 즉 재귀쿼리는 한 쿼리가 반복되어 실행된다고 생각하면 된다.이러한 반복 쿼리는 계층구조를 SELECT 할때 유용하게 쓰인다. 기본적으로 코드 테이블 구조를 만들때code 와 parent_code(부모코드) 컬럼으로 구성하게 되면계층구조로 select 하기 편해진다. WITH 문을 이용한 계층쿼리 부터 확인해보자 CODE_TABLEcod..
Table '$TABLE_NAME' is specified twice, both as a target for 'UPDATE' and as a separate source for data 쓰면서 처음 보는 에러 발생;;; UPDATE 시에 대상 테이블의 값을 대상 테이블에서 직접 접근하여 조회하여 조건에 사용했을 경우 에러 발생.UPDATE 에서만 발생하는지는 모르겠음. 정리된 내용은 이러함.SELECT * FROM `TABLE` WHERE ID = 'JKUN.NET' AND IDX = ( SELECT MAX_IDX FROM (SELECT MAX(IDX) AS MAX_IDX FROM `TABLE` WHERE ID = 'JKUN.NET') ) _dummy )
MySQL 정규식으로 치환 함수 MySQL 정규식으로 치환 함수DELIMITER $$ CREATE FUNCTION `regex_replace`(pattern VARCHAR(1000),replacement VARCHAR(1000),original VARCHAR(1000)) RETURNS VARCHAR(1000) DETERMINISTIC BEGIN DECLARE temp VARCHAR(1000); DECLARE ch VARCHAR(1); DECLARE i INT; SET i = 1; SET temp = ''; IF original REGEXP pattern THEN loop_label: LOOP IF i>CHAR_LENGTH(original) THEN LEAVE loop_label; END IF; SET ch = SUBSTRING(orig..
UNIXTIME 관련 함수 1. UNIXTIME(타임스탬프) → DATE FROM_UNIXTIME('1485874832', '%Y%m%d %H%i%s') 2. DATE → UNIXTIME UNIX_TIMESTAMP() UNIX_TIMESTAMP('YYYY-MM-DD HH:mm:ss')
[펌] 커버링인덱스 본문 : http://gywn.net/2012/04/mysql-covering-index/ MySQL에서 커버링 인덱스로 쿼리 성능을 높여보자!!5 Replies안녕하세요. 오늘 짧지만 재미있는 내용을 하나 공유할까 합니다.커버링 인덱스(Covering Index)라는 내용인데, 대용량 데이터 처리 시 적절하게 커버링 인덱스를 활용하여 쿼리를 작성하면 성능을 상당 부분 높일 수 있습니다.커버링 인덱스란?커버링 인덱스란 원하는 데이터를 인덱스에서만 추출할 수 있는 인덱스를 의미합니다. B-Tree 스캔만으로 원하는 데이터를 가져올 수 있으며, 칼럼을 읽기 위해 굳이 데이터 블록을 보지 않아도 됩니다.인덱스는 행 전체 크기보다 훨씬 작으며, 인덱스 값에 따라 정렬이 되기 때문에 Sequential Read ..
[링크] MySQL에서 사용하는 Lock 이해 참 깔끔하게 포스팅 되어 있습니다. 블로그도 깔끔하구요~http://blog.saltfactory.net/database/introduce-mysql-lock.html
MySQL Split - 문자열 자름 처리. MySQL 에도 split 이 있다.SUBSTRING_INDEX 1. 대상 예제 쿼리 및 결과 SELECT * FROM ( SELECT 1 AS seq, 'Welcome To JKUN.NET|^^' AS message UNION ALL SELECT 2 AS seq, 'Welcome To JKUN.NET|^^' AS message UNION ALL SELECT 3 AS seq, 'Welcome To JKUN.NET|^^' AS message ) AS EX; 2. SUBSTRING_INDEX 적용 쿼리 및 결과 SELECT seq, message, SUBSTRING_INDEX(message, '|', 1) as first, SUBSTRING_INDEX(message, '|', -1) as second FRO..
참조키 강제 해제 후;; 데이터베이스 스키마 일괄생성 스크립트를 모르고 mysql 데이터베이스에 돌렸다;;아;;;;; 했는데지우는게 있드만;; #관계 체크 해제 SET foreign_key_checks = 0; #관계 체크 설정 SET foreign_key_checks = 1;