본문 바로가기

MySQL

[펌] [MySQL] MySQL WITH 재귀쿼리 계층구조 MySQL 에서도 재귀쿼리가 된다;;너무 심플해서 울뻔;; ㅎㅎㅎ 참 마리아 디비에서도 된다. 테스트 해봄.[MySQL] MySQL WITH 재귀쿼리 계층구조보통 WITH 문 재귀쿼리 를 이용해서 계층 구조를 나타내는데 사용한다.일단 재귀쿼리란..?재귀 - 원래의 자리로 되돌아가거나 되돌아옴이란 뜻을 갖고 있다. 쉽게 생각하면 같은걸 반복한다고 생각하면 쉬울까..즉 재귀쿼리는 한 쿼리가 반복되어 실행된다고 생각하면 된다.이러한 반복 쿼리는 계층구조를 SELECT 할때 유용하게 쓰인다.기본적으로 코드 테이블 구조를 만들때code 와 parent_code(부모코드) 컬럼으로 구성하게 되면계층구조로 select 하기 편해진다.WITH 문을 이용한 계층쿼리 부터 확인해보자CODE_TABLEcode parent_..
[패스워드 분실] 리눅스 기준 MySQL root 패스워드 분실
[TroubleShooting] Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details. CentOS 기준Error MessagesJob for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.Aria engine is not enabled or did not start. The Aria engine must be enabled to continue as mysqld was configured with --with-aria-tmp-tables위 에러 내용중 하나가 발생하면서, MariaDB 가 기동이 안된다면 다음과 같이 처리한다. $ systemctl status mariadb ..
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