mysql 54

[MySQL] DB 내 모든 테이블 ROW 수 확인하기

개요 단일 테이블에 대한 ROW 수는 특정 테이블에 count 함수를 실행하여 간단하게 구할 수 있다. SELECT COUNT(*) FROM table_name; 실행 결과 | count(1) | | -------- | | 2 | 그렇다면 데이터베이스 내 모든 테이블을 대상으로 행 수를 얻을 때는 어떻게 해야 할까? 방법을 적어둔다. 예시 DB 아래의 DDL로 생성한 예시 데이터베이스를 이용해 테스트해본다. CREATE TABLE test ( id INT ); INSERT INTO test (id) VALUES (1); INSERT INTO test (id) VALUES (2); CREATE TABLE IF NOT EXISTS `docs` ( `id` int(6) unsigned NOT NULL, `re..

Database 2023.06.08

[MySQL] 실행 중인 프로세스 kill

개요 RDS burstbalance가 0으로 떨어져서 원인 파악을 확인하는 과정에서 장시간 실행 중인 것으로 의심되는 쿼리가 있었다. 확인해 보고 정리하고자 한다. 실행 프로세스 확인 현재 실행 중인 프로세스의 목록과 상태를 확인한다. SHOW processlist; -- 전체 쿼리 보기 SHOW FULL processlist; 참고 : 2021.11.08 - [MySQL/MariaDB] 프로세스 목록 확인 의심하고 있던 쿼리가 실행 중인 상태인 것을 확인할 수 있었다. 프로세스 종료 실행 프로세스를 종료시키는 방법은 리눅스 프로세스 종료와 비슷하게 kill 명령어를 사용한다. kill -- 예시 kill 16644247 프로세스가 정상적으로 종료됐는지 확인한다. 참고 문서 https://hosim.ti..

Database 2023.04.24

[MySQL] CHECK TABLE - 테이블 상태 확인

CHECK TABLE View DDL에서 존재하지 않는 테이블을 참조하는 등의 문제를 가진 테이블이 있는지 확인한다. 확인할 테이블에 대한 권한이 있어야 CHECK 명령을 수행할 시 있다. 개발자보다는 DBA가 주로 사용하는 명령어지만, DB 업그레이드 사전 작업 중 확인 요청이 와서 정리한다. SQL CHECK TABLE tbl_name [, tbl_name] ... [option] ... option: { FOR UPGRADE | QUICK | FAST | MEDIUM | EXTENDED | CHANGED } 옵션은 다음과 같다. FOR UPGRADE : 테이블이 현재 MySQL 버전과 호환되는지 확인한다. QUICK : 잘못된 링크를 확인하기 위한 행 스캔 금지 FAST : 적절히 CLOSE 되지 ..

Database 2023.04.03

[MySQL] View 목록 확인

개요 2021.09.17 - [MySQL] View에서 View의 개념과 생성, 삭제, 수정 방법은 정리했었다. 정작 목록을 확인하는 방법을 적어두지 않아 정리한다. 1. SHOW FULL TABLES SHOW FULL TABLES IN WHERE table_type LIKE 'VIEW'; FULL 키워드를 붙이지 않으면 table_type 컬럼이 없어 조회되지 않는다. 2. SELECT ~ FROM information_schema SHOW FULL TABLES 명령과 달리 모든 데이터베이스 내에 존재하는 View 목록을 확인할 수 있다. SELECT table_schema, table_name, table_type FROM information_schema.TABLES WHERE table_type ..

Database 2023.04.02

[MySQL/MariaDB] 서버 원격 접속 허용

개요 AWS EC2에 MySQL 서버를 설치하고 다른 서버에 접속을 시도했다. EC2에 적용한 보안 그룹은 아웃바운드와 인바운드 모두 허용되어 있고 MySQL 서버도 실행 중이고, 접속을 시도한 계정은 모든 대역의 IP를 허용하고 있었다. 하지만 접속이 되지 않았다……. telnet 연결조차 되고 있지 않은 상태다. 원인 MySQL은 기본적으로 localhost의 연결만 수신하기 때문에 같은 서버 내에서만 접근할 수 있다. 원격 접속이 필요하다면 아래 두 가지 방법 중 하나를 선택할 수 있다. SSH 터널을 통한 접속 MySQL 서버가 원격 연결을 허용하도록 구성 이 글에서는 MySQL 서버가 원격 연결을 허용하도록 구성해보려고 한다. MySQL 서버 구성 변경 MySQL 서버와 클라이언트가 전용 네트워..

Database 2023.03.25

[MySQL] 데이터형 변환 (CAST/CONVERT)

개요 MySQL은 비교나 검색을 수행할 때 데이터 타입이 다른 경우 내부적으로 같은 타입으로 변환하여 처리한다. 또 사용자가 명시적으로 데이터 타입을 변환할 수 있도록 연산자와 함수를 제공하고 있다. CAST 인수로 전달받은 값을 지정한 데이터 타입으로 변환한다. 변환할 타입은 AS 절로 명시하며, 사용할 수 있는 타입은 BINARY, CHAR, DATE, DATETIME, TIME, DECIMAL, JSON (MySQL 5.7.8 이상), NCHAR, SIGNED [INTEGER], UNSIGNED [INTEGER]이다. CAST(expr AS type) 예시 ) SELECT 4 / 2, 4 / '2', 4 / CAST('2' AS UNSIGNED); # 실행 결과 | 4 / 2 | 4 / '2' | ..

Database 2023.02.09

[MySQL] 접속 명령어

개요 어째 매번 mysql-client로 접속할 때마다 접속 명령어를 검색하고 있는 것 같아 기록한다. mysql-client 설치 먼저 mysql-client 설치가 필요하다. OS에 따라 yum, apt 등으로 설치한다. # CentOS/Linux2 yum install mysql # Ubuntu apt install mysql-client 접속 mysql 명령어를 통해 MySQL 서버에 접속한다. mysql # -u, --user : MySQL 서버에 접속할 계정 # -p, --password : MySQL 서버에 접속할 때 사용할 비밀번호. 지정하지 않으면 대화형으로 입력한다. # -h, --host=name: 접속할 MySQL 서버 # -P, --port : MySQL 서버에 접속할 때 사용할 ..

Database 2022.12.12

[MySQL] JOIN/UNION을 사용한 FULL OUTER JOIN

개요 2022.06.12 - [MySQL] JOIN에서 정리했지만 MySQL에서는 FULL OUTER JOIN을 지원하지 않는다. 하지만 OUTER JOIN과 UNION을 이용하면 FULL OUTER JOIN을 할 수 있다. SQL SQL은 다음과 같은 구조이다. 2개 테이블 JOIN SELECT * FROM t1 LEFT OUTER JOIN t2 ON t1.id = t2.id UNION SELECT * FROM t1 RIGHT OUTER JOIN t2 ON t1.id = t2.id 3개 테이블 JOIN SELECT * FROM t1 LEFT OUTER JOIN t2 ON t1.id = t2.id LEFT OUTER JOIN t3 ON t2.id = t3.id UNION SELECT * FROM t1 R..

Database 2022.12.08

[MySQL] SubQuery - 스칼라 서브 쿼리

SubQuery 서브 쿼리란 다른 쿼리 내에 포함되어 있는 SELECT 쿼리문을 의미한다. 서브쿼리를 포함하고 있는 쿼리를 외부 쿼리, 부모 쿼리, 메인 쿼리라고 부르고 서브 쿼리를 내부 쿼리, 자식 쿼리라고 부른다. 서브 쿼리는 괄호로 감싸서 표현된다. 예시 ) SELECT name, height FROM userTbl WHERE height > (SELECT height FROM userTbl WHERE name in ('김경호') ); 서브쿼리에서는 메인 쿼리의 컬럼을 사용할 수 있지만, 메인 쿼리에서는 서브 쿼리의 컬럼을 사용할 수 없다. 서브 쿼리 장점 쿼리를 구조화하여, 쿼리의 부분을 명확히 구분할 수 있다. 복잡한 JOIN, UNION과 같은 동작을 수행할 수 있는 방법을 제공한다. 복잡한 ..

Database 2022.12.07

[MySQL] DDL 조회

개요 데이터베이스에서 이미 생성되어 있는 테이블, View의 DDL을 추출하려고 한다. 방법을 정리해둔다. Table DDL 테이블은 CREATE TABLE 문으로 생성할 수 있다. CREATE TABLE 문 앞에 SHOW를 붙이면 해당 테이블의 DDL을 추출할 수 있다. SHOW CREATE TABLE -- 예시 SHOW CREATE TABLE docs; View DDL VIEW의 DDL도 같은 명령으로 확인할 수 있다. SHOW CREATE TABLE -- 예시 SHOW CREATE TABLE view_docs; 참고 문서 https://rangstv.tistory.com/6

Database 2022.11.30
1 2 3 4 5 6