'Mysql'에 해당되는 글 21건

  1. 2015/03/12 visualp mysql bin-log 대처 방안,mysql binlog
  2. 2015/01/28 visualp mysql 트리거
  3. 2012/12/28 visualp order by cast(id as unsigned) desc
  4. 2012/08/31 visualp mysql, if 문
  5. 2012/05/14 visualp MySQL 에서 IF문 사용하기
  6. 2012/03/04 visualp MySQL INSERT의 사용법
  7. 2012/02/20 visualp 재퀴쿼리, 현제 부터 부모노드 까지 한방에 호출 하기
  8. 2012/02/17 visualp mysql TIMESTAMP
  9. 2011/05/27 visualp MYSQL LOG 관리 (mysql log 관리)
  10. 2011/02/25 visualp mysql - reqpire , analyze

innodb_flush_log_at_trx_commit

Mysql RSS Icon ATOM Icon 2017/09/27 09:15 visualp


실 운영시 =2로 사용(안정성)
디비작업시(대량)인서트  = 잠시 0 설정 해줌

mariadb 콜솔에서 실행
set global innodb_flush_log_at_trx_commit = 0;


innodb_flush_log_at_trx_commit = 0
innodb_flush_log_at_trx_commit = 1
innodb_flush_log_at_trx_commit = 2

0 인 경우, MySQL 이나 OS가 갑자기 crash 된다면 최대 1초동안의 트랜잭션을 잃을 수 있다.

  • 1 인 경우, 안전하다.
  • 2 인 경우, OS가 갑자기 crash 된다면 최대 1초동안의 트랜잭션을 잃을 수 있다. 하지만 MySQL 장애시에는 이미 OS 영역으로 데이터는 넘어갔기 때문에 안전할 수 있다.
  • 각 값에 따라, 엄청난 성능을 보일 수 있다.
    • 지난번에 엄청난 양의 log를 위하여 MySQL을 사용하는 팀이 있었는데, 해당값을 1에서 0으로 수정함에 따라 성능이 7배 빨라지기도 했다.
    • 단순 select용의 slave나, 최대 1초정도의 트랜잭션은 무시할 수 있는 서비스 혹은 log를 저장할 서버라면 해당값을 1에서 0으로 변경할 수 있다.
    • MySQL을 가장 빠르고 쉽게 튜닝할 수 있는 parameter 중의 하나이다.
2017/09/27 09:15 2017/09/27 09:15
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/723

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/723

wait_timeout 설정

Mysql RSS Icon ATOM Icon 2017/09/20 14:21 visualp

[원문]https://sites.google.com/site/dist777study/home/db/mysql/wait_timeout
SET @@GLOBAL.wait_timeout=300
my.cnf 에
wait_timeout=300
추가

2017/09/20 14:21 2017/09/20 14:21
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/722

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/722

날짜 중복범위 검색

Mysql RSS Icon ATOM Icon 2017/07/18 13:38 visualp

날짜 중복확인:

(('사용자입력시작일' <= DB시작일 and DB시작일 <= '사용자입력종료일') or ('사용자입력시작일' <= DB종료일 and DB종료일 <= '사용자입력종료일') or (DB시작일 <= '사용자입력시작일' and '사용자입력종료일' <= DB종료일)) 

2017/07/18 13:38 2017/07/18 13:38
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/718

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/718


-- Maria DB max connection 수 확인

SHOW VARIABLES LIKE '%max_connection%'

-- Maria DB에 접속되어 있는 client 정보 리스트

SHOW PROCESSLIST;

-- Maria DB max connection 수 조절

SET GLOBAL max_connections = 10000;

//status 관련 값
show status like '%CONNECT%';

Max_used_connections <--현재 연결된 접속수

Threads_connected  <-- 연결되었던 최대 접속수

2016/10/13 09:45 2016/10/13 09:45
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/713

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/713

mysql max connection

Mysql RSS Icon ATOM Icon 2015/05/09 17:07 visualp
mysql> set global max_connections=300;
(mysql 을 재시작 안해도 max_connections 값이 바로 적용된다.)
또 다른 방법으로
mysql 설정파일(my.ini 또는 my.cnf )을 다음과 같이 설정해주면 된다.
[mysqld]
  max_connections = 300
설정파일 변경 후에는 mysql 재시작이 필요하다.

■ max_connections에 대한 설명
MySQL은 [ 최대 접속수 + 1 ]의 접속을 허용한다. "1"은 관리자 권한 접속을 나타낸다.
문제가 발생했을 경우 관리자가 접속할 수 있게 하기 위해서이다.

시스템에 접속수가 폭주해서 접속이 안되는 경우가 발생한다. (ERROR 1040 (08004): Too many connections)
이런 상황에서 일시적으로 접속수를 증가시킴으로써 에러를 해결하자~.

■ MySQL 접속수 관련 상태를 확인하는 방법
mysql> show variables like '%max_connect%';    
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| max_connect_errors | 10000 |
| max_connections    | 100   |
+--------------------+-------+

mysql> show status like '%CONNECT%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Aborted_connects         | 200   |
| Connections              | 300   |
| Max_used_connections     | 101   |   ==> 현재 연결된 접속수
| Ssl_client_connects      | 0     |
| Ssl_connect_renegotiates | 0     |
| Ssl_finished_connects    | 0     |
| Threads_connected        | 101   |   ==> 연결되었던 최대 접속수
+--------------------------+-------+
7 rows in set (0.00 sec)

mysqladmin 실행해서 확인하는 방법
./mysqladmin -u root -p processlist
./mysqladmin -u  root -p variables | grep max_connections
2015/05/09 17:07 2015/05/09 17:07
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/684

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/684

1. MySQL Replication 환경에서 지우기

  - MySQL Replication MASTER 서버
    shell> mysql -u root -p
    mysql> RESET MASTER;

  - MySQL Replication SLAVE 서버
    shell> mysql -u root -p
    mysql> RESET MASTER;

2. MySQL Binary Log sequence number 또는 특정 일자로 지우기

  shell> mysql -u root -p
  mysql> PURGE BINARY LOGS TO 'mysql-bin.000015';
  shell> mysql -u root -p
  mysql> PURGE BINARY LOGS BEFORE '2009-05-01 00:00:00';

3. mysqladmin flush-logs 명령어를 통해서 MySQL Binary Log 지우기

   shell> mysqladmin -u root -p flush-logs

4. MySQL Binary Log 생성을 방지하는 방법

  /etc/my.cnf 파일에서 아래 라인을 주석 처리
  log-bin

5. MySQL Binary Log 를 특정 1주일까지만 생성 및 보관하기
  /etc/my.cnf 파일에서 아래 라인을 추가
  expire_logs_days = 7

[원문] http://faq.hostway.co.kr/Linux_DB/1307

 

2015/03/12 09:05 2015/03/12 09:05
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/672

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/672

mysql 트리거

Mysql RSS Icon ATOM Icon 2015/01/28 23:33 visualp
  트리거는 테이블에 INSERT, UPDATE, DELETE 가 발생 할 때 그 과정의 전후로 무언가를 하도록 지정 할 수 있다.

 

DELIMITER $$

CREATE TRIGGER 트리거이름
BEFORE UPDATE ON 테이블이름
FOR EACH ROW 
BEGIN 
 IF (NEW.AA <> OLD.AA) THEN
    SET new.BB = new.AA;
 END IF ;
END$$
;
 

 

위의 쿼리는 트리거의 한 예제이다.

 

이 쿼리는 특정 테이블에 UPDATE가 발생 할 때 AA 의 값이 이전값과 이후값이 다를 경우에 

 

BB 컬럼에 값을 새로운 AA의 값으로 치환하라는 트리거이다.

 

녹색 : AFTER, BEFORE 

붉은색 : INSERT, UPDATE, DELETE

푸른색 : 쿼리(INSERT, UPDATE, DELETE 등)

 

NEW : 새로운 값

OLD : 이전 값

AFTER 를 사용할 때 같은 테이블에 INSERT, UPDATE, DELETE를 하게된다면 문제가 발생할 수 있다.

[원문] http://wofmaker.blog.me/220116117593

2015/01/28 23:33 2015/01/28 23:33
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/665

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/665

order by cast(id as unsigned) desc

Mysql RSS Icon ATOM Icon 2012/12/28 16:39 visualp

[원문]  : http://urikr.tistory.com/85

order by 절을 사용 하다보면 varcahr타입 등의 integer 탑입이 아닌 타입으로
정렬을 해야 될 경우가 생긴다 .
이런 경우 다음과 같이 처리 한다.
order by cast(id as unsigned) desc

order by 절 뿐만 아니라 텍스트를 숫자로 변환 할 때 사용 하면 될거 같다.

2012/12/28 16:39 2012/12/28 16:39
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/543

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/543

mysql, if 문

Mysql RSS Icon ATOM Icon 2012/08/31 15:24 visualp
( if(mb_hp='',concat(hp1,hp2,hp3) , mb_hp  ) ) as 'mb_hp'
위와 같이 사용함
if(조건, true, false)

위와같이 사용 합니다.
2012/08/31 15:24 2012/08/31 15:24
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/512

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/512

MySQL 에서 IF문 사용하기

Mysql RSS Icon ATOM Icon 2012/05/14 16:28 visualp
[MySQL] IF문 사용예제

※ 경고
높이뜬새의 모르는 사람이 없는 팁시리즈 입니다.
이 팁시리즈는 지면낭비라는 항의시에 즉각 중단됩니다.

MySQL에서는 IF문 자체를 프로시져 도움없이도 SQL문에 바로 삽입하는 것이 가능해서 무척 편리합니다. 물론 제어부분이 계속 중첩된다면 CASE문을 사용하셔야 합니다.

형식) if (조건,
참일때 결과,거짓일때 결과)


예1) 쉬운 예

mysql> SELECT if( 2 > 1, '참', '거짓' );

결과 : 2가 1보다 크므로 당연히 참을 출력합니다.

예2) WHERE절에서 사용

SELECT * FROM join_table WHERE if( CHAR_LENGTH(name) = 2, 'Y', 'N' ) = 'Y';

결과 : join_table의 name컬럼에서 이름이 두글자인 분만 가져옵니다.


예3) SELECT문에서 사용

SELECT if( substr( name, 1, 1 ) = '강', '강씨', name ) FROM join_table;

결과 : join table의 name컬럼에서 이름의 첫자가 '강' 이면 '강씨'를 출력하고, 아니라면 name 컬럼의 이름을 걍 출력합니다.

From : 높이뜬새(www.webmadang.net)

2012/05/14 16:28 2012/05/14 16:28
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/473

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/473