MySQL_Section
-
MySQL 통계정보 갱신MySQL_Section/운영 2016. 1. 24. 18:00
ANALYZE TABLE테이블 유지 보수의 대명사라고하면, 인덱스 통계 업데이트는 아닐까. 작업을 계속 사이에, 부지불식간 인덱스 통계가 미쳐 버려하고 성능이 나오지 않는다. RDBMS에는 그런 문제가 붙 것이지만, InnoDB의 경우 ANALYZE TABLE은 불필요하다. 왜냐하면 InnoDB가 자발적으로 통계 정보를 업데이트하기 때문이다. InnoDB는 다음의 조건에 적합하면 ANALYZE TABLE을 자동으로 실시하는 구조로되어있다. 지난 인덱스 통계를 업데이트 한 후 테이블의 행 전체의 1/16이 업데이트되었다.지난 인덱스 통계 정보를 업데이트하고, 20 억 이상의 행 업데이트되었다.그래서, 일반 사용자라면별로 인덱스 통계 업데이트에 대한 걱정은 할 필요 없을 것이다. (여기서 남편의 AA 'こま..
-
마리아 DB 시장 조사MySQL_Section/운영 2016. 1. 18. 22:06
RDBMS의 엔진 순위- DB 엔진 순위는 매 달 업데이트 되며, 2015년 05월 전체 14위를 하고 있습니다. 전년도 대비 3단계 오르면 계속해서 상승 곡선을 그리고 있습니다.(DB-Engines : http://db-engines.com/en/ranking/relational+dbms) 2. 마리아 DB 국내외 사용 회사마리아DB 사용 회사 (국외)구글, 페이스북, 유튜브, 야후, 바이두, 위키피디아, 트위터, 링크드인, 아마존, 위드프레스 마리아DB 사용 회사 (국내)KT, 카카오, 삼성, SKT, 티켓몬스터, 네오위즈게임, 다음, 네이버 3. 라이선스 정책마리아DB는 GPL v2.0 라이선스로 배포되고 있으므로 이를 자사의 비공개 상용SW에 포함하여 패키지로 판매할 경우에는 GPL 의무사항에 따..
-
MySQL 5.6 join IssueMySQL_Section/query 2015. 1. 5. 12:43
OverviewMySQL 오픈 소스 진영은 더이상 단순 데이터 처리에만 강한 DBMS이기를 거부합니다. 이제는 대용량 처리에 적합하도록 탈바꿈 중입니다.지금까지 MySQL에서는 단일 쓰레드로 Nested Loop 방식으로 쿼리를 처리하였기 때문에, 조인 건 수가 대형화될 수록 성능이 급속도로 악화되었습니다.MariaDB는 5.3버전부터 DB 엔진과 스토리지 엔진 간의 데이터 전송이 개선되었고, 조인 시 추가적인 블록 기반의 조인 알고리즘을 제공합니다. 물론 MySQL도 5.6버전부터는 관련 기능을 어느정도 지원합니다.변화하는 MariaDB에 대해 몇 가지 소개하도록 하겠습니다.Disk access optimization1) Index Condition PushdownMySQL/MariaDB는 구조적으로 ..
-
InnoDB의 트랜잭션 및 Lock 내용 확인MySQL_Section/Lock 2014. 12. 31. 15:32
InnoDB의 트랜잭션 및 Lock 내용 확인간단하게 InnoDB가 실행하고 있는 트랜잭션들의 정보들을 이해하는 방법을 살펴보자. InnoDB Plug-in 버전에서는 트랜잭션에 대한 정보와 Lock 그리고 Lock 대기에 관련된 정보들을 INFORMATION_SCHEMA에 정의된 테이블들(INNODB_TRX, INNODB_LOCKS, INNODB_LOCK_WAITS)을 조회함으로써 쉽게 파악할 수 있다. (이 부분은 InnoDB Plug-in의 엄청난 발전으로 느껴진다)하지만, Built-in 버전의 InnoDB에서는 이러한 딕셔너리를 제공하지 않는다. 유일한 방법은 “SHOW ENGINE INNODB STATUS” 명령문밖에 해결책이 없다. 간단히 아래와 같은 테이블을 만들고, 두 개의 세션에서 동일..
-
[MySQL] date_format 함수를 이용한 날짜 다루기MySQL_Section/developer 2014. 12. 14. 15:06
//특정 월에서 시간을 검색하는 쿼리 select count(*) from login where date_format(days,'%Y-%m %H')>='2015-10 08' and date_format(days,'%Y-%m %H') 2014-10-10 select DATE_FORMAT('20141010152630', '%y-%m-%d') => 14-10-10 select DATE_FORMAT('20141010152630', '%Y-%m-%d %H:%i:%s') => 2014-10-10 15:26:30 (시간 24시) select DATE_FORMAT('20141010152630', '%Y-%m-%d %h:%i:%s') => 2014-10-10 03:26:30 (시간 12시)
-
[MySQL] 성능 테스트MySQL_Section/운영 2014. 12. 7. 17:21
Overview오늘은 Temporary Table에 관해 포스팅을 하겠습니다. Select및 Update 등을 이따금씩 Temporary Table을 활용하여 수행하는 경우가 있습니다. 동시에 많은 데이터를 일괄 변경하는 것에서는 분명 강점이 있을 것이라 판단되는데, 어떤 상황에서 적절하게 사용하는 것이 좋을까요? 관련 성능 벤치마크 결과를 공개하겠습니다.Environment테이블에는 약 1000만 건 데이터가 존재하며, Primary Key외에는 추가 인덱스는 생성하지 않았습니다. 서로 동등하게 빠른 데이터 접근이 가능하다는 가정 하에 PK외 인덱스에서 발생할 수 있는 성능 저하 요소를 배제하기 위해서 입니다.^^1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ## DDL for dba..
-
[MySQL] 패스워드 변경MySQL_Section/운영 2014. 11. 28. 15:52
mysql 구동중지# /etc/init.d/mysqld stop또는# killall mysqldmysql 안전모드 구동# mysqld --skip-grant-tables &mysql 로그인 (mysql Database로 접속)# mysql -u root mysqlmysql> update user set password=PASSWORD('바뀔 패스워드') where user='계정명';Query OK, 1 row affected (0.00 sec)Rows matched: 2 Changed: 1 Warnings: 0mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql재구동# /etc/init.d/mysqld stop# /etc/init.d/..
-
MySQL charset encodingMySQL_Section/운영 2014. 11. 25. 01:15
MySQL charset encodingCharset과 Collation의 차이Character Set GeneralMySQL에서 문자셋과 Collation의 차이A character set is a set of symbols and encodings. A collation is a set of rules for comparing characters in a character set. 문자셋(character set)은 심볼(글자)과 인코딩의 묶음이고, Collation은 문자셋의 문자들을 비교하는 규칙이다. 예를들어 글자 A=0, B=1, a=10, b=11 이라고 할 때 'A'는 글자이고 '0'은 인코딩이다. 여기서 볼 때 'A'와 'a'는 서로 다른 인코딩을 가지므로 다르다고 볼 수 있다. 하지만 ..