반응형

MySQL 9

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

MySQL 패스워드 분실시 대안 방법.

간혹 서버를 인계받다보면 mysql의 root 패스워드가 상실된 상태에서 인계를 받기도 합니다. 그럴 때 요청을 하여 패스워드를 알 수 있으면 정말 좋겠으나 뜻대로 되지 않는 경우가 허다하죠 ^^; 우선 서버에 원격 접근이 가능 하다는 전제하의 방법입니다. Window 플랫폼. 시작 > 실행 > services.msc 입력 후 확인. 서비스에서 mysql 부분을 중지합니다. (혹은 작업 관리자에서 mysql 관련 프로세스를 종료합니다.) 시작 > 실행 > cmd 입력 후 확인 (커맨드 입력창을 엽니다.) MySQL의 설치 디렉토리의 열린 커맨드창(ms-dos창)에서 bin까지 이동합니다. (예: cd C:\Program Files\MySQL\bin) mysqld.exe --skip-grant (입력 후 ..

Database 2013.02.26

JSP :: SQL :: Instance_name :: 인스턴스네임 알아보기

카테고리를 어느쪽으로 넣어야할지 고민입니다만, jsp하다가 필요했던거니 jsp카테고리로..OTL C:\>sqlplus //sql 접속시 SQL*Plus: Release 10.2.0.1.0 - Production on 수 11월 19 15:52:20 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. 사용자명 입력: scott //scott계정으로 접속 암호 입력: //비번 입력 다음에 접속됨: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> conn sys/tiger as..

Programing/JSP 2008.11.19
반응형