본문 바로가기
반응형

Database/MYSQL227

[MySQL] 프로시저(스토어드 프로그램)의 장단점 1. 스토어드 프로그램이란? MySQL에서는 절차적인 처리를 위해 스토어드 프로그램을 이용할 수 있습니다. 스토어드 프로그램은 스토어드 루틴이라고도 하는데, 스토어드 프로시저와 스토어드 함수 그리고 트리거와 이벤트 등을 모두 아우르는 명칭입니다. 스토어드 프로그램 가운데 스토.. 2019. 11. 26.
Mysql percona 5.7 Innodb utf8mb4 init_connect command failed 처리 # my.cnf 에 설정 이 있다면 제거하세요 #init_connect = SET collation_connection = utf8mb4_unicode_ci #init_connect = SET NAMES utf8imb4 # 기본 설정 [client] default-character-set=utf8mb4 [mysqld] skip-slave-start character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci innodb_large_prefix=1 데몬 재실행후에 접속하면 정상 연결됩니다. 참.. 2019. 11. 11.
MySQL의 replication 방법 그렇다면 MySQL 복제 란 무엇입니까?복제는 소스 환경의 트랜잭션을 기반으로 한 위치에만 저장되는 대신 정보가 다른 환경에 복사되고 의도적으로 채워지는 것을 보장합니다. 이를 위해서는 인프라에서 보조 서버를 사용하여 읽기 또는 다른 관리 솔루션을 사용하는 것이 좋습니다. 아래 .. 2019. 10. 10.
Freebsg 어제 그제 날짜 구하기 쉘스크립트 작성 하다보면 오늘 날짜, 어제 날짜등 구할 일이 가끔생기는데요 ~ 이때 스크립트에서 사용 하세요 # 어제 및 그제 일자 계산 D1=`TZ=KST+15 date +%Y%m%d` D2=`TZ=KST+39 date +%Y%m%d` echo $D1 $D2 > 20191009 20191008 유닉스 계열중 Solaris, HP, AIX에서는 다음과 같이 하면 어제 날짜를 바로 구할수 .. 2019. 10. 10.
Mysql Federated Engine 사용시 주의사항 Federated Engine (Link) 1. 네트워크 성능에 따라 쿼리의 성능이 좌지우지 된다. 2. 원격지의 Table에 DDL 작업이 발생 시이것을 참조하는 Federated 테이블에 대해서 재생성 > 혹 Federated 테이블을 모를경우 가장큰 문제가됨 3. 데이터 참조시 해당 원격 DB테이블을 모두 가져와야 하기에 처리량 증가.. 2019. 7. 23.
MySQL5.6 메모리 사용량을 억제 이번은 MySQL5.6이 메모리 450Mbyte도 소비하고 있었기 때문에 메모리 소비를 개선하는 방법입니다. # ps alx | grep mysql | awk '{printf ("%d\t%s\n", $8,$13)}' 1488 /bin/sh 454036 /usr/sbin/mysqld 912 grep 살펴보면 버그 인 것 같습니다. 일단 상황은 어떻게되어 있는지 확인합니다. mysql> show variables like 'table_definit.. 2019. 4. 23.
MySQL 데이타베이스와 계정 생성하기 MySQL 데이타베이스와 계정 생성하기.utf8 mysql 5.7 이상은 Create User 구문 사용MySQL 5.7 이상CREATE DATABASE homestead CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'homestead'@'localhost' IDENTIFIED BY 'secret' PASSWORD EXPIRE NEVER;GRANT ALL PRIVILEGES ON homestead.* TO 'homestead'@'localhost'; flush privileges;MySQL 5.7 미만CREATE DATABASE homestead.. 2019. 3. 13.
Mysql 5.7 설치시 비번 설정 1. 데몬 실행 2. 임시 생성된 비번으로 root 접속 # mysql -udba -p 3. 접속후 초기 비밀번호 변경 SET PASSWORD = PASSWORD('password'); 4. 기타 추가할 계정 및 DB 생성 create database if not exists DB_NAME; CREATE USER 'USER'@'localhost' IDENTIFIED BY 'PASSWORD' PASSWORD EXPIRE NEVER; GRANT ALL PRIVILEGES on DB_NAME.* TO 'USER'@'HOST'; FLUSH PRIVIL.. 2019. 3. 8.
InnoDB에서 Auto_Increment를 믿지 말자. Overview MySQL에서는 시퀀스 개념이 없지만, 테이블 단위로 움직이는 Auto_Increment라는 강력한 기능이 있습니다. Auto_Increment 속성은 숫자 형 Primary Key를 생성하는 데 많이 사용됩니다. 특히나 InnoDB 경우에는 Primary Key 사이즈가 전체 인덱스 사이즈에 직접적인 영향을 미치기 때문에, 저도 테이블.. 2019. 2. 18.
[MySQL] 바쁜 서비스 투입 전, 이런 캐시 전략 어때요? [MySQL] 바쁜 서비스 투입 전, 이런 캐시 전략 어때요? Overview 데이터베이스를 운영한다는 것은 최적의 상태로 리소스를 “쥐어짜면서” 가장 효율적으로 데이터를 끄집어내야할텐데요. 지금은 SSD 디스크 도입으로 상당 부분 Disk I/O가 개선되었다지만, 여전히 메모리 효율은 굉장히 중요합.. 2019. 2. 15.
Mysql CHARSET 체크 CHARSET 25 CHARSET(str) Returns the character set of the string argument. mysql> SELECT CHARSET('abc'); -> 'latin1' mysql> SELECT CHARSET(CONVERT('abc' USING utf8)); -> 'utf8' mysql> SELECT CHARSET(USER()); -> 'utf8' 2019. 2. 8.
Mysql 5.7 log_warnings log_warnings PropertyValueCommand-Line Format--log-warnings[=#]Deprecated5.7.2System Variablelog_warningsScopeGlobalDynamicYesTypeIntegerDefault Value (64-bit platforms, >= 5.7.2)2Default Value (64-bit platforms, <= 5.7.1)1Default Value (32-bit platforms, >= 5.7.2)2Default Value (32-bit platforms, <= 5.7.1)1Minimum Value0Maximum Value (64-bit platforms)184467440737.. 2019. 2. 7.
시스템 파라미터(스토리지 엔진) innodb_purge_threads=1 ~ 32(기본 값: 1) innoDB엔진에 생성된 테이블은 오라클과 비슷하게 undo 세그먼트를 사용한다. 버퍼 캐시의 변경된 내용은 주기적으로 디스크로 써야 하는데, 오라클의 경우 1개 이상의 DBWn라는 대몬이 전담하여 이를 처리하고 있는 것처럼 mariaDB도 디스크로 내려쓰는 역할을.. 2018. 12. 14.
데이터베이스 Isolation Level Isolation Level 의 필요성 데이터베이스의 무엇보도 중요한 기능은 데이터를 정확하고 안전하게 저장하며 데이터의 변경이나 수정시 제한을 두어 안정성을 저해하는 요소를 막아 데이터 상태들을 항상 옳게 유지하는 것을 의미한다. 즉, 흔히 말하는 무결성을 보장하는 것이다. 데이터의 무.. 2018. 12. 14.
MySQL 트랜잭션 Isolation Level로 인한 장애 사전 예방 법 Overview MySQL에서 전체 데이터를 Scan 하는 쿼리를 질의하여 서비스에 큰 영향이 발생할 수 있습니다. InnoDB 스토리지 엔진의 기본 Isolation Level이 REPEATABLE-READ이기 때문에 발생하는 현상인데, 이것은 세션 변수 일부를 변경하여 문제를 사전에 해결할 수 있습니다. 얼마 전 이와 비슷한 장애가 .. 2018. 12. 14.
MySQL Replication과 Galera Cluster에 대하여 MySQL Replication과 Galera Cluster에 대하여 Galera에 대해 말하기 전에, 우선 MySQL의 복제 방식에 대해 알아보자. 일반적으로 Master/Slave 방식으로 구성한다. 2개 노드 중 한 노드는 Read, 한 노드는 Write를 담당하게끔 한다. DB마다 차이는 있지만 보통 Read 작업의 비중이 더 크다. 따라서 Read/Write의 분리.. 2018. 12. 14.
MySQL Galera Replication MySQL Galera Replication 조대협 (http://bcho.tistory.com) RDBMS 오픈소스 중에서 단연 가장 많이 사용되는 것은 MySQL인데, 근래에 웹 스케일이 커지면서, 단일 인스턴스로만 서비스가 불가능한 용량까지 가게 되서, 이 MySQL에 대한 클러스터링 스케일링에 대한 이슈가 많아졌다. 이에 Tungsten, MySQL Replicati.. 2018. 12. 12.
MySQL 원격 증분 백업 – Percona XtraBackup MySQL 원격 증분 백업 – Percona XtraBackup # Percona XtraBackup 소개 이미 예전에 XtraBackup을 간단하게 소개한 글을 썼었는데 그 글의 내용만으로는 XtraBackup을 실무에 쓰기에 턱없이 부족하다. 그래서 이번에는 XtraBackup을 제대로 쓸 수 있는 문서를 만들었다. 일반적으로 MySQL 백업으로 mysqldump를 사용하는데 매번 전체를 백업하는 방식이므로 데이터가 커질수록 백업에 걸리는 시간이 길어지고 부담이 커진다. 뿐만 아니라 백업된 데이터를 복구하는데도 무척 긴 시간을 필요로 한다. 하지만 XtraBackup을 사용하면 마지막 백업으로부터 변경된 사항만 이어서 백업하는 증분 백업이 가능하다. XtraBackup은 MySQL의 데이터 디렉토리 .. 2018. 12. 12.
Mysql 5.7 GIS GEOMETRY 의 거리계산방식 Mysql 5.7 GIS GEOMETRY 의 거리계산방식 DROP TABLE test_geom; CREATE TABLE test_geom ( `mem_geo` GEOMETRY NOT NULL COMMENT 'Geo좌표', SPATIAL KEY `i_geomidx` (`mem_geo`) ) ENGINE=MYISAM DEFAULT CHARSET=utf8 COMMENT='data'; INSERT INTO test_geom (mem_no,mem_geo) VALUES (1,GEOMFROMTEXT(CONCAT('POINT(126.847676 35.145623)'))); INSERT INTO test_geom (mem_no,mem_geo) VALUES.. 2018. 12. 4.
DB JOIN 원리 *JOIN 원리 DBMS 작동원리 : 평소에 데이터는 하드디스크의 데이터 파일에 저장해 두었다가 필요한 시점에 메모리로 복사한다. (오라클은 이때 사용하는 메모리를 데이터베이스 버퍼 캐시라고한다) 여기서 중요한 것은 칼럼 100개를 가진 테이블이 하드디스크에 저장되어 있을 때 사용자가 .. 2018. 11. 16.
반응형