- mysql 94
- mysql8 26
- mysql_tips 22
- mysql_internal 11
- postgres 10
- mysql_replication 7
- mongo 5
- mysql_partitioning 3
- performance_schema 3
- mysql_variables 2
- oracle 2
- postgres_intenal 2
- postgres_migration 2
- mysql_utilities 2
- mysql_cluster 2
- postgres_replication 2
- flush 2
- mysql_bug 2
- mysql_lock 2
- mysql_engine 1
- mysql_index 1
- postgres_parameters 1
- postgres_lock 1
- mysql_explain 1
- mysql_innodb 1
- mysql_fabric 1
- mysql_backup 1
- postgres_tool 1
- mysql_innodb_cluster 1
- mysql_data_type 1
- mysql_character_set 1
- mysql, 1
- pmm 1
- docker 1
- TempTable 1
- PartitionTable 1
mysql
MySQL Partition Table Performance
Partition 테이블 장단점 비교
파티션 테이블은 성능이점이 아니라 운영이점에 의해서 선택합니다.
그런데 성능이점은 과연 있을까 없을까?
이번 아티클은 성능 관점에서 파티션 테이블의 장단점을 비교해보았습니다.
MySQL+PMM docker-compose
MySQL DBCP test
MySQL 8.0 to MySQL 5.7 backward replication
MySQL 8.0 to MySQL 5.7 backward replication
Officially backward replication is not supported.
The server time zone value ‘KST’ is unrecognized or represents more than one time zone.
procedure 호출을 통한 set 명령어실행
개요
Meta Data Lock 에 의한 Deadlock 발생 예제
개요
- 개발팀에서 Deadlock found when trying to get lock; try restarting transaction 메세지를 Application에서 받았다고 했지만, show engine innodb status 의 정보나 information_schema.INNODB_METRICS 테이블에 관련된 내용이 전혀 없었음.
MySQL slave delay under long history list
MySQL MVCC history list
MySQL은 default REPEATABLE READ라서, InnoDB 모든 변경을 undo에 마구마구 기록하게 됩니다. https://blog.jcole.us/2014/04/16/the-basics-of-the-innodb-undo-logging-and-history-system/ 그리고 오래된 트랜잭션때문에 history list가 커지면 성능저하가 발생하게 됩니다. https://www.percona.com/blog/2017/05/08/chasing-a-hung-transaction-in-mysql-innodb-history-length-strikes-back/
MySQL table definition cache LRU Maintenance
MySQL InnoDB table definition cache LRU Maintenance
InnoDB에서는 table definition cache를 server(frm) 와 engine level(InnoDB system table)에서 모두 관리합니다. sql을 실행할때마다, table definition 을 접근해야합니다. 이것을 frm file이나 system table에서 매번 가져와야한다면 엄청 느리겠지요. 그래서 MySQL은 이를 캐시하는 영역이 있습니다. table definition cache. 이를 어떻게 관리하는지 설명합니다.
Connect/J Version에 따른 Character set JDBC옵션
MySQL에서 null safe equal operator (<=>)
MySQL convert to character set utf8mb4 using pt-osc
MySQL convert to character set
mysql 전체 테이블의 character set을 일괄로 변경하고자 할때 온라인으로 변경하는 방법을 설명한다.
Vagrant를 이용한 MySQL Source 설치하기
MySQL 디버깅을 위한 Docker 안에서 MySQL Source 설치하기
주의사항
- 해당 스크립트는 MySQL Debugging 을 위해 debug버젼을 compile하는데 목적이 있음으로 OS root유저로 진행한다. 사용을 위해서는 정상적인 절차 (mysql user 생성 / systemd 등록..) 를 진행한다.
- 5.7 과 8.0은 명령어가 조금 다른데, 해당이유는 8.0을 compile 하기 위해서는 cmake 버젼과 gcc 버젼을 올려줘야 한다.
- cmake >= 3.0
- GCC >= 4.8 (C++ 11) (MySQL 5.7의 경우, GCC >= 4.4)
- 8.0 compile시,
fatal error: ld terminated with signal 9 [Killed]
라는 에러가 발생했는데 이는 docker가 사용했던 메모리가 부족 (2GiB)하여 발생되었다. oom 세팅과 메모리를 4GiB로 올린 후 문제는 발생하지 않았다. - windows 는 깔끔하게 mysql_debug binary를 받아서 사용하면 된다. :-)
Docker를 이용한 MySQL RPM 설치 및 기타 Tool 설치
명령어 모음
OS 명령어
Docker로 centos 이미지 만들기
docker search centos
docker pull centos
docker images -a
docker run -dit --hostname C7_M8017 --name centos7_mysql8017 centos
docker container ls -a
docker exec -it centos7_mysql8017 /bin/bash
Xcode를 통한 MySQL Build 및 Debug
Windows를 사용할때 Visual Studio 사용하며 디버깅할때의 편안함을 잊지 못하고 Xcode를 통해 build 하는 방법에 대해 로깅
Alter table시 소요시간 예측해보기
개요
* Alter table 명령어를 실행하고 나면, 현재 진행상황이 어느정도인지 궁금할때가 있다.
일반적으로 파일사이즈나 show engine innodb status를 통해 가늠해볼 수는 있지만, 정확한 값은 아니며 때로는 여러단계에서 같은 작업을 진행함으로 현재 작업을 얼마나 더 해야 하는지 예상하기 쉽지 않다.
MySQL 5.7부터는 Performance_schema 를 이용하여, Alter 명령어에 대해 모니터링을 할 수 있다.
MySQL decimal type 제대로 알고 사용하기
decimal type 제대로 알고 사용하기
mysql에서 실수를 표현할때는 보통 decimal 혹은 double을 사용하게 된다. 이 둘의 차이점이 무엇이고, decimal 을 사용하는 경우에 주의할 점을 기술한다.
MySQL explicit_defaults_for_timestamp
explicit_defaults_for_timestamp 에 대해서
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).
MySQL Bug when using server-side prepared statements
MySQL Bug when using server-side prepared statements
MySQL 8.0 - InnoDB Architecture 변경사항
MySQL 8.0 - Err 파일의 형식 변경
MySQL 8.0 - TABLE 생성시, 변경사항
MySQL 8.0 - Authentication_plugin 의 변경
MySQL 8.0 - 기본 CharacterSet 의 변경
MySQL 8.0 - 추가된 GIS functions
MySQL 8.0 - 추가된 String functions
MySQL 8.0 - X Dev API의 활용
MySQL 8.0 - Performance_schema events_statements_histogram_by_digest Table
MySQL 8.0 - Performance_schema events_errors_summary_by_user_by_error Table
MySQL 8.0 - Performance_schema data_locks Table
MySQL 8.0 - Replication By Channel
MySQL 8.0 - Function Based Index (Functional Key Parts)
MySQL 8.0 - Descending Index
MySQL 8.0 - Invisible Index
MySQL 8.0 - 추가된 OPTIMIZER HINT
MySQL 8.0 - SKIP LOCKED, NOWAIT
MySQL 8.0 - Window function
MySQL 8.0 - Common Table Expression
MySQL 8.0 - Role 기능 추가
MySQL 8.0 - SET PERIST 구문
MySQL 8.0 - ALTER TABLE ALGORITHM=INSTANT 옵션
Disable index_merge on MySQL
Disable index_merge on MySQL
Crash recovery and Data integrity on MySQL
Crash recovery on MySQL
MySQL Add an AUTO_INCREMENT column to a partitioned table
Add an AUTO_INCREMENT column to a partitioned table
사용중인 파티션테이블에 AI column을 추가하려고한다. 이때 AUTO_INCREMENT속성으로 add column, ALGORITHM=INPLACE 하면 에러가 발생한다. 현상을 살펴보자.
MySQL Fractional timestamp and Partition pruning
MySQL Fractional timestamp and Partition pruning
MySQL Read Committed vs. Repeatable Read
Read Committed vs. Repeatable Read
- MySQL의 Isolation level은 전통적으로 Repeatable Read 를 default로 한다.
- 하지만 반드시 repeatable read가 필요한 경우에만 lock을 사용하고 그외에서는 committed 를 봐도 무방하다면, 다른 RDBMS와 같이 Read committed를 default Isolation level로 하는 건 어떨까.
- 막연하게 Read Committed가 lock contention이 더 줄고, 동시성에 더 좋을 것 같다.
- 그리고 Repeatable read 에서 long running query (혹은 슬프게도 transaction이 제대로 close되지 않아서)가 돌때 undo가 너무 많이 쌓여서 전체적으로 성능에 영향을 주는 상황도 회피할 수 있다.
MTS considerations
MTS considerations
Multi-threaded slave(MTS)를 통해서 slave delay를 줄일수 있을까.
- → YES. https://mysqlhighavailability.com/multi-threaded-replication-performance-in-mysql-5-7/
- 실제로 slave delay가 발생하는 시스템에서 MTS on/off test결과 효과적인 것을 확인 할 수 있었다.
MySQL range partition VS range columns partition
MySQL range partition VS range columns partition
MySQL sandbox 설치와 이용방법
MySQL sandbox 설치와 이용방법
MySQL 통계정보
MySQL 통계정보
Semi-Synchronous Replication on MySQL
Semi-Synchronous Replication on MySQL
MySQL slow query 를 효율적으로 이용해보자!
MySQL slow query 를 효율적으로 이용해보자!
skip-name-resolve 와 unauthenticated user
skip-name-resolve 와 unauthenticated user
mysql client utility 와 -A 옵션
mysql client utility 와 -A 옵션
Error Table “mysql”.”innodb_table_stats” not found 는 왜 발생하는가?
“Error: Table “mysql”.”innodb_table_stats” not found” 는 왜 발생하는가?
performace_schema 를 이용하여 최근에 실행된 쿼리 확인하기
performace_schema 를 이용하여 최근에 실행된 쿼리 확인하기
유용한 mysql client tool 옵션 (my.cnf 에 설정)
유용한 mysql client tool 옵션 (my.cnf 에 설정)
버젼에 따라 쿼리 실행하기
버젼에 따라 쿼리 실행하기
MySQL query_cache 최적화 하기
MySQL query_cache 최적화 하기
binlog_row_image 에 대해서
binlog_row_image 에 대해서
mysqltest command를 이용한 mockup test 및 임의의 데이터 생성
mysqltest command를 이용한 mockup test 및 임의의 데이터 생성
MySQL SYS schema overview
MySQL SYS schema overview
Slave 에서 mysqldump의 dump-slave 옵션을 이용하여 백업 혹은 다른 slave 구성하기
Slave 에서 mysqldump의 dump-slave 옵션을 이용하여 백업 혹은 다른 slave 구성하기
MySQL Audit 사용하기
MySQL Audit 사용하기
Linux 의 OOM (Out of memory) killer 로 인한 mysqld shutdown 피하기
Linux 의 OOM (Out of memory) killer 로 인한 mysqld shutdown 피하기
MySQL architecture - Adaptive Hash Indexes
MySQL architecture - Adaptive Hash Indexes
MySQL InnoDB architecture - doublewrite buffer
MySQL InnoDB architecture - doublewrite buffer
information_schema.INNODB_XXX 를 활용한 lock 정보 확인
information_schema.INNODB_XXX 를 활용한 lock 정보 확인
mysqladmin 을 통한 상태로깅
mysqladmin 을 통한 상태로깅
MySQL InnoDB Thread Concurrency 설정하기
MySQL InnoDB Thread Concurrency 설정하기
MySQL open_files_limit 변경하기
MySQL open_files_limit 변경하기
MySQL innodb_flush_method
MySQL innodb_flush_method
MySQL InnoDB architecture – InnoDB I/O threads
MySQL InnoDB architecture – InnoDB I/O threads
MySQL InnoDB architecture - change buffer
MySQL InnoDB architecture - change buffer
innodb_flush_log_at_trx_commit 개념도와 튜닝 포인트
innodb_flush_log_at_trx_commit 개념도와 튜닝 포인트
mysqldump를 이용한 전체 fulldump 에서 특정 database 만 import 하기
mysqldump를 이용한 전체 fulldump 에서 특정 database 만 import 하기
mysqlfailover , mysqlreplicate , mysqlrpladmin 를 이용한 MySQL HA 자동 failover 및 수동 failback
mysqlfailover , mysqlreplicate , mysqlrpladmin 를 이용한 MySQL HA 자동 failover 및 수동 failback
MySQL 의 show slave status 에서 Seconds_Behind_Master 는 무엇을 기준으로 결정되는가
MySQL 의 show slave status 에서 Seconds_Behind_Master 는 무엇을 기준으로 결정되는가?
mysqlrpladmin 외부스크립트 연동 옵션
mysqlrpladmin 외부스크립트 연동 옵션
MySQL 에러메시지 언어 설정
MySQL 에러메시지 언어 설정
BLOB 저장방식 in InnoDB
BLOB 저장방식 in InnoDB
MySQL login-path
MySQL login-path
HA를 위한 mysql utilities
HA를 위한 mysql utilities
MySQL 5.6 Crash-safe replication
MySQL 5.6 Crash-safe replication
MySQL 5.6 Multi-Threaded Slave
MySQL 5.6 Multi-Threaded Slave
MySQL 5.6 gtid replication manadatory options
MySQL 5.6 gtid replication manadatory options
MySQL 5.6 gtid replication configuration and failover simple test
MySQL 5.6 gtid replication configuration and failover simple test
Windows MySQL root password reset
Windows MySQL root password reset
MySQL 실행계획 추적
MySQL 실행계획 추적
MySQL Transaction isolation level
MySQL Transaction isolation level
unique index with nullable column
unique index with nullable column
MySQL MEMORY 엔진
MySQL MEMORY 엔진
slave_sql_verify_checksum 성능에 미치는 영향
slave_sql_verify_checksum 성능에 미치는 영향
mysql8
MySQL8.0 TempTable Flow
MySQL8.0 TempTable Flow
MySQL 8.0에서 Internal Temporary Table 방식이 변경되었다. Default TempTable이라는데 이게 기존과 어떤 차이가 있는지 확인해보자
MySQL 8.0 to MySQL 5.7 backward replication
MySQL 8.0 to MySQL 5.7 backward replication
Officially backward replication is not supported.
The server time zone value ‘KST’ is unrecognized or represents more than one time zone.
MySQL slave sql_thread command type in 8.0
MySQL slave sql thread command type in 8.0
8.0부터 slave sql thread의 command type 표시 내용이 다르다. 뭔가 남몰래 바뀐 느낌. 로깅을 위해서 버전별로 확인해두자.
Alter table시 소요시간 예측해보기
개요
* Alter table 명령어를 실행하고 나면, 현재 진행상황이 어느정도인지 궁금할때가 있다.
일반적으로 파일사이즈나 show engine innodb status를 통해 가늠해볼 수는 있지만, 정확한 값은 아니며 때로는 여러단계에서 같은 작업을 진행함으로 현재 작업을 얼마나 더 해야 하는지 예상하기 쉽지 않다.
MySQL 5.7부터는 Performance_schema 를 이용하여, Alter 명령어에 대해 모니터링을 할 수 있다.
MySQL 8.0 - InnoDB Architecture 변경사항
MySQL 8.0 - Err 파일의 형식 변경
MySQL 8.0 - TABLE 생성시, 변경사항
MySQL 8.0 - Authentication_plugin 의 변경
MySQL 8.0 - 기본 CharacterSet 의 변경
MySQL 8.0 - 추가된 GIS functions
MySQL 8.0 - 추가된 String functions
MySQL 8.0 - X Dev API의 활용
MySQL 8.0 - Performance_schema events_statements_histogram_by_digest Table
MySQL 8.0 - Performance_schema events_errors_summary_by_user_by_error Table
MySQL 8.0 - Performance_schema data_locks Table
MySQL 8.0 - Replication By Channel
MySQL 8.0 - Function Based Index (Functional Key Parts)
MySQL 8.0 - Descending Index
MySQL 8.0 - Invisible Index
MySQL 8.0 - 추가된 OPTIMIZER HINT
MySQL 8.0 - SKIP LOCKED, NOWAIT
MySQL 8.0 - Window function
MySQL 8.0 - Common Table Expression
MySQL 8.0 - Role 기능 추가
MySQL 8.0 - SET PERIST 구문
mysql_tips
MySQL sandbox 설치와 이용방법
MySQL sandbox 설치와 이용방법
MySQL 통계정보
MySQL 통계정보
MySQL slow query 를 효율적으로 이용해보자!
MySQL slow query 를 효율적으로 이용해보자!
skip-name-resolve 와 unauthenticated user
skip-name-resolve 와 unauthenticated user
mysql client utility 와 -A 옵션
mysql client utility 와 -A 옵션
Error Table “mysql”.”innodb_table_stats” not found 는 왜 발생하는가?
“Error: Table “mysql”.”innodb_table_stats” not found” 는 왜 발생하는가?
performace_schema 를 이용하여 최근에 실행된 쿼리 확인하기
performace_schema 를 이용하여 최근에 실행된 쿼리 확인하기
유용한 mysql client tool 옵션 (my.cnf 에 설정)
유용한 mysql client tool 옵션 (my.cnf 에 설정)
버젼에 따라 쿼리 실행하기
버젼에 따라 쿼리 실행하기
MySQL query_cache 최적화 하기
MySQL query_cache 최적화 하기
mysqltest command를 이용한 mockup test 및 임의의 데이터 생성
mysqltest command를 이용한 mockup test 및 임의의 데이터 생성
MySQL SYS schema overview
MySQL SYS schema overview
Slave 에서 mysqldump의 dump-slave 옵션을 이용하여 백업 혹은 다른 slave 구성하기
Slave 에서 mysqldump의 dump-slave 옵션을 이용하여 백업 혹은 다른 slave 구성하기
MySQL Audit 사용하기
MySQL Audit 사용하기
Linux 의 OOM (Out of memory) killer 로 인한 mysqld shutdown 피하기
Linux 의 OOM (Out of memory) killer 로 인한 mysqld shutdown 피하기
information_schema.INNODB_XXX 를 활용한 lock 정보 확인
information_schema.INNODB_XXX 를 활용한 lock 정보 확인
mysqladmin 을 통한 상태로깅
mysqladmin 을 통한 상태로깅
MySQL open_files_limit 변경하기
MySQL open_files_limit 변경하기
mysqlrpladmin 외부스크립트 연동 옵션
mysqlrpladmin 외부스크립트 연동 옵션
MySQL 에러메시지 언어 설정
MySQL 에러메시지 언어 설정
MySQL login-path
MySQL login-path
Windows MySQL root password reset
Windows MySQL root password reset
mysql_internal
Crash recovery and Data integrity on MySQL
Crash recovery on MySQL
MySQL Read Committed vs. Repeatable Read
Read Committed vs. Repeatable Read
- MySQL의 Isolation level은 전통적으로 Repeatable Read 를 default로 한다.
- 하지만 반드시 repeatable read가 필요한 경우에만 lock을 사용하고 그외에서는 committed 를 봐도 무방하다면, 다른 RDBMS와 같이 Read committed를 default Isolation level로 하는 건 어떨까.
- 막연하게 Read Committed가 lock contention이 더 줄고, 동시성에 더 좋을 것 같다.
- 그리고 Repeatable read 에서 long running query (혹은 슬프게도 transaction이 제대로 close되지 않아서)가 돌때 undo가 너무 많이 쌓여서 전체적으로 성능에 영향을 주는 상황도 회피할 수 있다.
binlog_row_image 에 대해서
binlog_row_image 에 대해서
MySQL architecture - Adaptive Hash Indexes
MySQL architecture - Adaptive Hash Indexes
MySQL InnoDB architecture - doublewrite buffer
MySQL InnoDB architecture - doublewrite buffer
MySQL InnoDB Thread Concurrency 설정하기
MySQL InnoDB Thread Concurrency 설정하기
MySQL innodb_flush_method
MySQL innodb_flush_method
MySQL InnoDB architecture – InnoDB I/O threads
MySQL InnoDB architecture – InnoDB I/O threads
MySQL InnoDB architecture - change buffer
MySQL InnoDB architecture - change buffer
innodb_flush_log_at_trx_commit 개념도와 튜닝 포인트
innodb_flush_log_at_trx_commit 개념도와 튜닝 포인트
MySQL Transaction isolation level
MySQL Transaction isolation level
postgres
PostgreSQL 2nodes HA using repmgr
PostgreSQL 2nodes HA using repmgr
PostgreSQL synchronous_commit 개념도
PostgreSQL synchronous_commit 개념도
pgbadger로 PostgreSQL 로그분석레포팅하기
pgbadger로 PostgreSQL 로그분석레포팅하기
pg_rewind로 좀더 편해진 Streaming replication Failback
pg_rewind로 좀더 편해진 Streaming replication Failback
MySQL to PostgreSQL Migration tool
MySQL to PostgreSQL Migration tool
Slony-I Replication Configuration
Slony-I Replication Configuration
ora2pg migration test
ora2pg migration test
PostgreSQL VACUUM main point
PostgreSQL VACUUM main point
Detecting lock problems
Detecting lock problems
pg_stat_activity truncate query size at 1024
pg_stat_activity truncate query size at 1024
mysql_replication
MTS considerations
MTS considerations
Multi-threaded slave(MTS)를 통해서 slave delay를 줄일수 있을까.
- → YES. https://mysqlhighavailability.com/multi-threaded-replication-performance-in-mysql-5-7/
- 실제로 slave delay가 발생하는 시스템에서 MTS on/off test결과 효과적인 것을 확인 할 수 있었다.
Semi-Synchronous Replication on MySQL
Semi-Synchronous Replication on MySQL
MySQL 의 show slave status 에서 Seconds_Behind_Master 는 무엇을 기준으로 결정되는가
MySQL 의 show slave status 에서 Seconds_Behind_Master 는 무엇을 기준으로 결정되는가?
MySQL 5.6 Crash-safe replication
MySQL 5.6 Crash-safe replication
MySQL 5.6 Multi-Threaded Slave
MySQL 5.6 Multi-Threaded Slave
MySQL 5.6 gtid replication manadatory options
MySQL 5.6 gtid replication manadatory options
MySQL 5.6 gtid replication configuration and failover simple test
MySQL 5.6 gtid replication configuration and failover simple test
mongo
MongoDB Replica Set 멤버 추가삭제하기
MongoDB Replica Set 멤버 추가/삭제하기
MongoDB Replica Set status 확인하기
MongoDB Replica Set status 확인하기
MongoDB Filesystem snapshot을 사용한 백업리스토어
MongoDB Filesystem snapshot을 사용한 백업/리스토어
MongoDB Replica Set 구성하기
MongoDB Replica Set 구성하기
MongoDB Installation
MongoDB Installation
mysql_partitioning
MySQL Add an AUTO_INCREMENT column to a partitioned table
Add an AUTO_INCREMENT column to a partitioned table
사용중인 파티션테이블에 AI column을 추가하려고한다. 이때 AUTO_INCREMENT속성으로 add column, ALGORITHM=INPLACE 하면 에러가 발생한다. 현상을 살펴보자.
MySQL Fractional timestamp and Partition pruning
MySQL Fractional timestamp and Partition pruning
MySQL range partition VS range columns partition
MySQL range partition VS range columns partition
performance_schema
MySQL 8.0 - Performance_schema events_statements_histogram_by_digest Table
MySQL 8.0 - Performance_schema events_errors_summary_by_user_by_error Table
MySQL 8.0 - Performance_schema data_locks Table
mysql_variables
MySQL explicit_defaults_for_timestamp
explicit_defaults_for_timestamp 에 대해서
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).
slave_sql_verify_checksum 성능에 미치는 영향
slave_sql_verify_checksum 성능에 미치는 영향
oracle
Oracle 11gR2 Installation on CentOS6
Oracle 11gR2 Installation on CentOS6
how to unlock LOCKED(TIMED) account
how to unlock LOCKED(TIMED) account
postgres_intenal
PostgreSQL synchronous_commit 개념도
PostgreSQL synchronous_commit 개념도
PostgreSQL VACUUM main point
PostgreSQL VACUUM main point
postgres_migration
MySQL to PostgreSQL Migration tool
MySQL to PostgreSQL Migration tool
ora2pg migration test
ora2pg migration test
mysql_utilities
mysqlfailover , mysqlreplicate , mysqlrpladmin 를 이용한 MySQL HA 자동 failover 및 수동 failback
mysqlfailover , mysqlreplicate , mysqlrpladmin 를 이용한 MySQL HA 자동 failover 및 수동 failback
HA를 위한 mysql utilities
HA를 위한 mysql utilities
mysql_cluster
MySQL Cluster Overview
MySQL Cluster Overview
MySQL Cluster Installation
MySQL Cluster Installation
postgres_replication
pg_rewind로 좀더 편해진 Streaming replication Failback
pg_rewind로 좀더 편해진 Streaming replication Failback
Slony-I Replication Configuration
Slony-I Replication Configuration
flush
MySQL innodb_flush_method
MySQL innodb_flush_method
innodb_flush_log_at_trx_commit 개념도와 튜닝 포인트
innodb_flush_log_at_trx_commit 개념도와 튜닝 포인트
mysql_bug
MySQL Bug when using server-side prepared statements
MySQL Bug when using server-side prepared statements
Disable index_merge on MySQL
Disable index_merge on MySQL
mysql_lock
procedure 호출을 통한 set 명령어실행
개요
Meta Data Lock 에 의한 Deadlock 발생 예제
개요
- 개발팀에서 Deadlock found when trying to get lock; try restarting transaction 메세지를 Application에서 받았다고 했지만, show engine innodb status 의 정보나 information_schema.INNODB_METRICS 테이블에 관련된 내용이 전혀 없었음.
mysql_engine
MySQL MEMORY 엔진
MySQL MEMORY 엔진
mysql_index
unique index with nullable column
unique index with nullable column
postgres_parameters
pg_stat_activity truncate query size at 1024
pg_stat_activity truncate query size at 1024
postgres_lock
Detecting lock problems
Detecting lock problems
mysql_explain
MySQL 실행계획 추적
MySQL 실행계획 추적
mysql_innodb
BLOB 저장방식 in InnoDB
BLOB 저장방식 in InnoDB
mysql_fabric
MySQL Fabric
MySQL Fabric
mysql_backup
mysqldump를 이용한 전체 fulldump 에서 특정 database 만 import 하기
mysqldump를 이용한 전체 fulldump 에서 특정 database 만 import 하기
postgres_tool
pgbadger로 PostgreSQL 로그분석레포팅하기
pgbadger로 PostgreSQL 로그분석레포팅하기
mysql_innodb_cluster
Make my replication to the InnoDB Cluster
Make my replication to the InnoDB Cluster
mysql_data_type
MySQL decimal type 제대로 알고 사용하기
decimal type 제대로 알고 사용하기
mysql에서 실수를 표현할때는 보통 decimal 혹은 double을 사용하게 된다. 이 둘의 차이점이 무엇이고, decimal 을 사용하는 경우에 주의할 점을 기술한다.
mysql_character_set
MySQL convert to character set utf8mb4 using pt-osc
MySQL convert to character set
mysql 전체 테이블의 character set을 일괄로 변경하고자 할때 온라인으로 변경하는 방법을 설명한다.
mysql,
MySQL slave sql_thread command type in 8.0
MySQL slave sql thread command type in 8.0
8.0부터 slave sql thread의 command type 표시 내용이 다르다. 뭔가 남몰래 바뀐 느낌. 로깅을 위해서 버전별로 확인해두자.
pmm
Back to Top ↑docker
Back to Top ↑TempTable
MySQL8.0 TempTable Flow
MySQL8.0 TempTable Flow
MySQL 8.0에서 Internal Temporary Table 방식이 변경되었다. Default TempTable이라는데 이게 기존과 어떤 차이가 있는지 확인해보자
PartitionTable
MySQL Partition Table Performance
Partition 테이블 장단점 비교
파티션 테이블은 성능이점이 아니라 운영이점에 의해서 선택합니다.
그런데 성능이점은 과연 있을까 없을까?
이번 아티클은 성능 관점에서 파티션 테이블의 장단점을 비교해보았습니다.