반응형

Database/MySQL 11

MySQL 속도 측정을 위한 SQL_NO_CACHE

설명 MySQL 5.3 버전의 GUI에서 실행된 쿼리가 캐싱되어 다음에 다시 실행할때 실행 속도가 줄어 정확한 속도 측정이 되지 않을때 SQL_NO_CACHE를 사용하면 실행할 때마다 캐싱 되지 않은 속도를 확인할 수 있다. 쿼리 캐시는 5.7.2 부터 사용되지 않으며, 8.0에선 제거되었기 때문에 다른 방법이 필요할 수 있다. 사용법 SELECT SQL_NO_CACHE * FROM `TABLE_NAME`; SELECT SQL_NO_CACHE `col_name` FROM `TABLE_NAME`; 기본 문법은 위와 같다.

Database/MySQL 2021.09.08

mysql strip_tags function / html 제거 후 검색

게시판의 내용 검색시 HTML 태그가 같이 검색되어, 사용자가 원하는 값을 정확하게 찾지 못하는 것을 방지 하기위해 아래와 같이 MySQL 사용자 함수를 등록해주고, CREATE FUNCTION `strip_tags`(s TEXT) RETURNS text CHARSET utf8 NO SQL BEGIN DECLARE start,end INT DEFAULT 1; LOOP SET start = LOCATE("", s, start); IF (!end) THEN SET end = start; END IF; SET s = INSERT(s, start, end - start + 1, ""); END LOOP; END 검색 시 아래와 같이 등록한 MySQL 함수를 이용한다. SELECT * FROM board WHER..

Database/MySQL 2020.10.20

MySQL 변수값 IN() 검색? FIND_IN_SET() 함수 이용

보통 아래와 같이 한개 필드에 여러 값을 검색할 경우 IN() 함수를 이용하여 검색한다. -- sample1 SELECT * FROM tbl1 WHERE tbl1_idx IN(1,2) 아래와 같이 IN()들어가는 값이 사용자가 입력한것이 아닌 다른 테이블에서의 값을 이용해서 검색 하는 것이라면? -- sample2 SELECT * ,@rows_idx := (SELECT GROUP_CONCAT(tbl2_idx) FROM tbl2) -- return value: '1,2' FROM tbl1 where tbl1_idx IN(@rows_idx) 위 쿼리는 얼핏보면 정상적인 결과 값이 표현되는 것 같지만 전혀 그렇지 않다.왜일까? sample1에서 검색하는 것은 "tbl1_idx IN(1,2)" 이고, sampl..

Database/MySQL 2018.12.31

MySQL EXPLAIN 사용하여 Query 퍼포먼스 확인.

EXPLAIN 을 사용하여 인덱스가 적절히 사용되고 있는지, 결과 값을 가지고 오기 위해 어떤 작업을 수행하는지 대략적으로 알 수 있다. EXPLAIN 은 SELECT문에 사용된 각 테이블당 하나의 행을 리턴한다. 나열된 순서는 MySQL이 쿼리 처리에 사용하는 순서대로 출력된다. MySQL은 모든 조인을 single-sweep multi-join 방식을 사용하여 처리하는데, 이것은 MySQL이 첫번째 테이블에서 한 행을 읽고, 두번째 테이블에서 매치되는 행을 찾고, 세번째 테이블에서 매치되는 행을 찾는 방식이다.모든 테이블들이 처리된 후 추출된 컬럼을 출력하고 다시 처음 테이블로 돌아가서 조인을 계속한다. 이런식으로 첫번째 테이블에 더이상 남는 행이 없을때까지 실행한다. STARTGHT_JOIN을 명시..

Database/MySQL 2016.09.13

group_concat 다중 레코드를 한개 컬럼으로 출력.

자꾸 잊어 버려서 기록 합니다. MySQL에서 Select시 멀티 레코드를 한개 컬럼으로 표현하는 방법입니다. 한개 컬럼으로 묶어서 쓰는건 concat()함수와 비슷합니다만, concat()함수는 단일 레코드에서 여러개의 컬럼을 묶어서 쓰는 것이고, group_concat()함수는 여러 래코드의 컬럼을 묶어 쓸때 사용합니다. Sample table : book_mast book_id book_name isbn_no cate_id aut_id pub_id dt_of_pub pub_lang no_page book_price BK001 Introduction to Electrodynamics 0000979001 CA001 AUT001 P003 2001-05-08 English 201 85.00 BK002 Un..

Database/MySQL 2013.07.15
반응형