MySQL & Maria
-
음.. 이번에는 쿼리를 짤때 자주 사용되는 AND / OR 논리 연산에 대한 우선 순위에 대해 작성해보려고 합니다. 많은 분들이 잘 알고 계시겠지만 이 우선순위에 의해서 원하는 결과 값이 아닌 다른 값이 나올수 있다는 점!!! AND / OR ? AND: 두 조건이 모두 참인 레코드를 검색 OR : 두 조건중 하나라도 참인 레코드 예제 쿼리를 통해 AND / OR 연산자의 우선 순위를 보겠습니다. 1. 2페이지에 해당하는 데이터중 Title에 'Test'가 포함된 데이터 select * from ( select rownum rn, bro, title, wirter from board where title like '%Test%' and rownum 10; 2. tit..
AND / OR 논리 연산자 우선 순위음.. 이번에는 쿼리를 짤때 자주 사용되는 AND / OR 논리 연산에 대한 우선 순위에 대해 작성해보려고 합니다. 많은 분들이 잘 알고 계시겠지만 이 우선순위에 의해서 원하는 결과 값이 아닌 다른 값이 나올수 있다는 점!!! AND / OR ? AND: 두 조건이 모두 참인 레코드를 검색 OR : 두 조건중 하나라도 참인 레코드 예제 쿼리를 통해 AND / OR 연산자의 우선 순위를 보겠습니다. 1. 2페이지에 해당하는 데이터중 Title에 'Test'가 포함된 데이터 select * from ( select rownum rn, bro, title, wirter from board where title like '%Test%' and rownum 10; 2. tit..
2023.12.08 -
오늘은 MySQL MyISAM 엔진의 테이블들을 InnoDB 엔진의 테이블로 변경하는 내용에 대해서 포스팅할 예정입니다. MySQL Dev에 작성된 지침들을 확인해 보면서 진행하도록 하겠습니다. https://dev.mysql.com/doc/refman/8.0/en/converting-tables-to-innodb.html MySQL :: MySQL 8.0 Reference Manual :: 15.6.1.5 Converting Tables from MyISAM to InnoDB 15.6.1.5 Converting Tables from MyISAM to InnoDB If you have MyISAM tables that you want to convert to InnoDB for better reliabi..
[ MySQL ] MyISAM to InnoDB오늘은 MySQL MyISAM 엔진의 테이블들을 InnoDB 엔진의 테이블로 변경하는 내용에 대해서 포스팅할 예정입니다. MySQL Dev에 작성된 지침들을 확인해 보면서 진행하도록 하겠습니다. https://dev.mysql.com/doc/refman/8.0/en/converting-tables-to-innodb.html MySQL :: MySQL 8.0 Reference Manual :: 15.6.1.5 Converting Tables from MyISAM to InnoDB 15.6.1.5 Converting Tables from MyISAM to InnoDB If you have MyISAM tables that you want to convert to InnoDB for better reliabi..
2023.05.26 -
모니터링 스크립트 TOP을 이용해서 MySQL의 Top10 Thread_OS_ID 확인 Thread_OS_ID를 이용하여 MySQL Query 수행 Thread_OS_ID, Processlist_ID, Query 출력 실행 시 password 변수 변경하여 사용 [root@db-test1 ~]# cat lee.sh #!/bin/bash password='wl@2020Toaxj' ### Search Top10 MySQL Thread_OS_ID lee=`top -b -n 1 -H -p \`ps -ef | grep mysqld | grep -v "mysqld_safe" | grep -v "grep" | awk '{print $2}'\` | grep -v "Threads\|top\|KiB\|%Cpu(s)\|PI..
[ MySQL ] CPU 부하 Query 모니터링모니터링 스크립트 TOP을 이용해서 MySQL의 Top10 Thread_OS_ID 확인 Thread_OS_ID를 이용하여 MySQL Query 수행 Thread_OS_ID, Processlist_ID, Query 출력 실행 시 password 변수 변경하여 사용 [root@db-test1 ~]# cat lee.sh #!/bin/bash password='wl@2020Toaxj' ### Search Top10 MySQL Thread_OS_ID lee=`top -b -n 1 -H -p \`ps -ef | grep mysqld | grep -v "mysqld_safe" | grep -v "grep" | awk '{print $2}'\` | grep -v "Threads\|top\|KiB\|%Cpu(s)\|PI..
2023.03.10 -
MySQL 5.7 이후부는 Online DDL을 지원하게 되었습니다. Online DDL시 장애를 줄이기 위해서 알아두면 좋은 환경설정에 대해 포스트팅 해보도록 하겠습니다. ■ Online DDL시 아래 작업들이 발생하게 됩니다. - online ddl시 row log buffer에 DDL이후의 데이터 변경사항을 저장하게 된다. - row log buffer는 sort_buffer_size 시스템 변수에 정의된 크기만큼씩 할당하며, 최대 innodb_online_alter_log_max_size 만큼 증가하게 된다. - innodb_online_alter_log_max_size ⇒ ONLINE DDL 중 DML문을 적재하는 Size 이다. 대부분 ONLINE DDL 중 해당 파라미터를 1G로 설정하고 진..
[ MySQL ] innodb_onlin_alter_log_max_size 중요성MySQL 5.7 이후부는 Online DDL을 지원하게 되었습니다. Online DDL시 장애를 줄이기 위해서 알아두면 좋은 환경설정에 대해 포스트팅 해보도록 하겠습니다. ■ Online DDL시 아래 작업들이 발생하게 됩니다. - online ddl시 row log buffer에 DDL이후의 데이터 변경사항을 저장하게 된다. - row log buffer는 sort_buffer_size 시스템 변수에 정의된 크기만큼씩 할당하며, 최대 innodb_online_alter_log_max_size 만큼 증가하게 된다. - innodb_online_alter_log_max_size ⇒ ONLINE DDL 중 DML문을 적재하는 Size 이다. 대부분 ONLINE DDL 중 해당 파라미터를 1G로 설정하고 진..
2023.02.27 -
MySQL를 운영하다 보면 DIsk 교체나 특정이유로 인해 데이터 디렉터리 경로를 변경하는 경우가 있습니다. 오늘은 데이터 디렉토리를 변경하는 방법에 대해 포스팅해 보겠습니다~ ■ 현재 Datadir 확인 1. MYSQL 들어가서 확인 mysql> select @@datadir; +-------------+ | @@datadir | +-------------+ | /data/data/ | +-------------+ 1 row in set (0.00 sec) 2.ps로 확인 [root@maria ~]# ps -ef | grep mysql root 6412 1 0 Feb20 ? 00:00:00 /bin/sh /mysql/bin/mysqld_safe --user=mysql mysql 6959 6412 0 F..
[ MySQL ] MySQL 데이터 디렉토리 변경MySQL를 운영하다 보면 DIsk 교체나 특정이유로 인해 데이터 디렉터리 경로를 변경하는 경우가 있습니다. 오늘은 데이터 디렉토리를 변경하는 방법에 대해 포스팅해 보겠습니다~ ■ 현재 Datadir 확인 1. MYSQL 들어가서 확인 mysql> select @@datadir; +-------------+ | @@datadir | +-------------+ | /data/data/ | +-------------+ 1 row in set (0.00 sec) 2.ps로 확인 [root@maria ~]# ps -ef | grep mysql root 6412 1 0 Feb20 ? 00:00:00 /bin/sh /mysql/bin/mysqld_safe --user=mysql mysql 6959 6412 0 F..
2023.02.21 -
■ Opening Tables? Trying to open a table. Usually very quick unless the limit set by table_open_cache has been reached, or an ALTER TABLE or LOCK TABLE is in progress. 테이블을 열려고 합니다. table_open_cache에 의해 설정된 한계에 도달하거나 ALTER TABLE 또는 LOCK TABLE이 진행 중이 아니라면 일반적으로 매우 빠릅니다. ■ 결론 Opening Table State의 경우 Table_open_cache < open_tables 상태이며 새로운 Table이 open될떄 발생하게된다. 해결방안 show global status where variabl..
[ MySQL ] Openging Table 상태■ Opening Tables? Trying to open a table. Usually very quick unless the limit set by table_open_cache has been reached, or an ALTER TABLE or LOCK TABLE is in progress. 테이블을 열려고 합니다. table_open_cache에 의해 설정된 한계에 도달하거나 ALTER TABLE 또는 LOCK TABLE이 진행 중이 아니라면 일반적으로 매우 빠릅니다. ■ 결론 Opening Table State의 경우 Table_open_cache < open_tables 상태이며 새로운 Table이 open될떄 발생하게된다. 해결방안 show global status where variabl..
2023.02.17 -
Docker Compose를 이용해서 이전에 포스팅했던 Docker Image를 빌드한후 DB Replicatoin 올리는 방법을 작성해보곗습니다. 간략하게 요약하면 아래 순으로 실행이됩니다. Docker hub에 올려논 Docker Image를 통해서 → Docker file을 만들고 → Docker Compose를 이용하여 Replication 설계 https://github.com/dkwlfowh/docker_mysql8_repl ■ Docker-Compose 설치 [root@pmm-server ~]# sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)..
[ MySQL ] Container DB Replication ( Using. Docker-compose )Docker Compose를 이용해서 이전에 포스팅했던 Docker Image를 빌드한후 DB Replicatoin 올리는 방법을 작성해보곗습니다. 간략하게 요약하면 아래 순으로 실행이됩니다. Docker hub에 올려논 Docker Image를 통해서 → Docker file을 만들고 → Docker Compose를 이용하여 Replication 설계 https://github.com/dkwlfowh/docker_mysql8_repl ■ Docker-Compose 설치 [root@pmm-server ~]# sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)..
2023.02.15 -
테스트 DB를 구성하는데 있어 보다 편하게 하고싶어서 Docker 이미지를 생성하고 해당 이미지로 Container DB 생성을 해보았습니다. 이후에 해당 이미지를 이요하여 Container Replication을 구성해 볼 예정입니다. [root@pmm-server ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 508674e5261a centos:7 "/bin/bash" 8 minutes ago Up 8 minutes centos7 4c349fab5687 centos "/bin/bash" 58 minutes ago Up 57 minutes centos 44eeafff66ca percona/pmm-server:2 "/opt/ent..
[ MySQL ] Docker MySQL 이미지 생성테스트 DB를 구성하는데 있어 보다 편하게 하고싶어서 Docker 이미지를 생성하고 해당 이미지로 Container DB 생성을 해보았습니다. 이후에 해당 이미지를 이요하여 Container Replication을 구성해 볼 예정입니다. [root@pmm-server ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 508674e5261a centos:7 "/bin/bash" 8 minutes ago Up 8 minutes centos7 4c349fab5687 centos "/bin/bash" 58 minutes ago Up 57 minutes centos 44eeafff66ca percona/pmm-server:2 "/opt/ent..
2023.02.15