본문 바로가기
반응형

mariadb8

mariadb 이메일 유효성 체크 함수 웹에서 서버단에 이메일을 보낼때는 보통 SMTP 서버를 이용하여 이메일을 발송한다. 이때, SMTP서버에 따라 수신자 이메일 주소가 정확하지 않을 경우 멈춤 현상이 발생할 수 있다. java에서 수신자 이메일 주소 유효성을 체크하는 방법도 있지만, 보통은 mariadb에서 수신자 목록을 조회하여 발송하는 경우가 많이 존재한다. 이때, mariadb에서 수신자 이메일 주소가 이메일 형식에 맞는지 체크하는 간단한 함수를 이용하면 편하게 업무를 진행 할 수 있다. 함수생성 CREATE OR REPLACE FUNCTION IS_EMAIL_VALID(EMAIL VARCHAR(255)) RETURNS BOOLEAN BEGIN DECLARE IS_VALID BOOLEAN; SET IS_VALID = FALSE; IF.. 2023. 8. 28.
mariadb group by 중 특정 컬럼 값이 다를 경우 count 다르게 조회 쿼리를 작성하다보면, GROUP BY 하여 값을 가져오는데, 특정 컬럼의 값이 다른경우 COUNT를 다르게 조회해야할 경우가 존재한다. 작성해야 하는 쿼리 조건 : 특정 컬럼 값이 다를 경우에만 COUNT를 다른 값으로 계산하고, 그렇지 않은 경우에는 리턴되는 ROW가 1개여야 한다 아래 쿼리를 예시로 들어보자. 테이블 이름이 your_table이며, 특정 컬럼이 specific_column이라고 가정한다. SELECT specific_column, CASE WHEN COUNT(DISTINCT column1, column2, ...) > 1 THEN COUNT(DISTINCT column1, column2, ...) ELSE 1 END AS count_result FROM your_table GROUP .. 2023. 8. 9.
mariadb 트리거 생성 예제 - 입력,수정,삭제 mariadb 트리거 생성 예제 - 입력,수정,삭제 아래 예제는 MariaDB에서 특정 테이블에 새로운 레코드가 삽입, 수정 또는 삭제될 때 트리거를 이용하여 별도의 로그 테이블에 해당 이벤트를 기록하는 쿼리다. 예를 들어, employees 테이블에 새로운 레코드가 삽입, 기존 레코드가 수정, 레코드가 삭제되었을 때 이를 employees_log 테이블에 기록하는 트리거를 생성하는 쿼리. employees_log 테이블은 event_type, event_time, id, name, position, salary 열을 가지고 있다. -- 트리거 생성 CREATE TRIGGER employees_trigger AFTER INSERT ON employees FOR EACH ROW BEGIN INSERT IN.. 2023. 8. 4.
MariaDB에서 계층 구조 데이터 조회하기 MariaDB에서 계층 구조 형태로 쿼리를 생성하는 방법은 2가지로 구분할 수 있다. "커넥트 바이너리 테이블" 방식 "공통 테이블 식(CTE)" 방식 커넥트 바이너리 테이블을 사용하는 방법 커넥트 엔진은 MariaDB에서 계층 구조 데이터를 처리하기 위한 기능을 제공한다. 커넥트 엔진이 설치되어 있어야 한다 -- 커넥트 엔진 로드 INSTALL SONAME 'ha_connect'; -- 계층 구조 데이터를 담고 있는 테이블 생성 CREATE TABLE hierarchy_table ( id INT PRIMARY KEY, parent_id INT, name VARCHAR(50) ) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='/path/to/hierarchy_data.csv';.. 2023. 8. 2.
MySQL/MariaDB 프로파일링 프로파일링 SQL문에서 문제가 되는 병목 지점을 찾고자 사용하는 수단으로 느린 쿼리나 문제가 있다고 의심되는 SQL문의 원인을 확인 할 수 있다. 툴에서 실행하지 않고, CLI 환경에서 실행해야 정확한 확인이 가능하다. -- 해당 접속 세션에서만 영향을 활성화 되며, 다른 세션에는 영향을 미치지 않는다. -- 프로파일링 활성화 / 비활성화를 확인한다. mysql> show variables like 'profileing%'; -- 비활성화 되어 있을 경우 SET 키워드로 활성화 해준다. mysql> set profileing = 'ON'; -- 프로파일링 할 쿼리를 실행한다. mysql> SELECT 컬럼, 컬럼, 컬럼 -> FROM 테이블명 -> WHERE 조건 -- show profiles 명령으로 .. 2022. 9. 18.
MySQL/MariaDB 실행계획 수행 기본 실행 계획 수행 키워드 : EXPLAIN, DESCRIBE, DESC SQL 문 앞에 원하는 키워드를 작성하여 실행하면 옵티마이저가 만든 실행계획이 출력됨. EXPLAIN SQL문; DESCRIBE SQL문; DESC SQL문; 실행계획이 출력되면, id, select_type, table, type, key등 정보가 출력됨. id 실행순서를 표시하는 숫자, 조인할때는 동일한 ID가 표시되며 숫자가 작을수록 먼저 수행된 것 select_type SELECT 문의 유형을 출력, 단순히 FROM 절에 위치한 것인지, 서브쿼리인지, UNION 절로 묶인 SELECT 문인지 등의 정보를 제공 select_type 유형 (* = 튜닝대상) PRIMARY : 서브쿼리가 포함된 SQL문이 있을때 첫번째 SELE.. 2022. 9. 18.
반응형