DB/NoSQL/Mysql2014. 9. 4. 11:23


※  DISTINCT 와 GROUP BY 의 경우 처리방식은 비슷하지만 사용하는 성향에 따라서 조금씩 이용하는 곳이 다르다.

     그리고 가장 큰 차이는 GROUP BY 의 경우 정렬이 일어나는 것이다.

     아래의 예시를 보면 file sort가 일어나는 것을 볼 수 있다.


CREATE TABLE `asd` (
  `idx` int(11) NOT NULL AUTO_INCREMENT,
  `id` varchar(20) NOT NULL DEFAULT '',
  `data` varchar(20) NOT NULL DEFAULT '',
  PRIMARY KEY (`idx`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into asd (id,data)values('a',100);
insert into asd (id,data)values('a',100);
insert into asd (id,data)values('c',100);
insert into asd (id,data)values('d',100);
insert into asd (id,data)values('c',100);
insert into asd (id,data)values('c',100);
insert into asd (id,data)values('d',100);
insert into asd (id,data)values('d',100);


※ id 컬럼에 index가 걸려있다면 filesort가 나지 않지만 걸려 있지 않다면 아래와 같이 filesort가 일어난다.

   해당 쿼리가 비번하게 일어난다면 filesort의 경우 성능에 큰 차이를 보일 수 있다. 

   그래서 정렬이 필요하지 않을 경우에는 order by null를 입력해서 filesort를 막을 수있다.


mysql> explain select * from asd group by id;
+----+-------------+-------+------+---------------+------+---------+------+------+---------------------------------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra                           |
+----+-------------+-------+------+---------------+------+---------+------+------+---------------------------------+
|  1 | SIMPLE      | asd   | ALL  | NULL          | NULL | NULL    | NULL |    8 | Using temporary; Using filesort |
+----+-------------+-------+------+---------------+------+---------+------+------+---------------------------------+
1 row in set (0.00 sec)
mysql> explain select * from asd group by id order by null;
+----+-------------+-------+------+---------------+------+---------+------+------+-----------------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra           |
+----+-------------+-------+------+---------------+------+---------+------+------+-----------------+
|  1 | SIMPLE      | asd   | ALL  | NULL          | NULL | NULL    | NULL |    8 | Using temporary |
+----+-------------+-------+------+---------------+------+---------+------+------+-----------------+
1 row in set (0.00 sec)


※ 해당 내용은 아래 블로그를 참조 하였으며 자세한 내용은 아래 블로그에서 설명을 볼 수 있습니다.

DISTINCT 와 GROUP BY의 차이 - http://intomysql.blogspot.kr/2011/01/distinct-group-by.html

GROUP BY의 Filesort 작업 제거 - http://intomysql.blogspot.kr/2010/12/group-by-filesort.html



Posted by 시니^^
DB/NoSQL/Mysql2014. 4. 18. 21:00


1. MySQL Handlersocket 관련 한글번역 잘해놓은 사이트 

http://advent.perl.kr/2012/2012-12-12.html 


※ What is Hanldersocket?


※ Common architecture pattern for MySQL + memcached




2. 개발자 원문 사이트

http://yoshinorimatsunobu.blogspot.kr/search/label/handlersocket


3. 참고사이트 성능비교
http://philipzhong.blogspot.kr/2011/06/performance-test-for-mysql-sql-and.html 


Posted by 시니^^
DB/NoSQL/Mysql2013. 2. 22. 00:41

MySQL 5.6.10  (2013-02-05)


http://dev.mysql.com/doc/relnotes/mysql/5.6/en/


http://dev.mysql.com/tech-resources/articles/mysql-5.6.html


DBA and Developer Guide to MySQL 5.6

Building the Next Generation of Web Applications and Services

At a glance, MySQL 5.6 is simply a better MySQL with improvements that enhance every functional area of the database kernel, including:

  • Better Performance and Scalability
    • Improved InnoDB storage engine for better transactional throughput
    • Improved Optimizer for better query execution times and diagnostics
  • Better Application Availability with Online DDL/Schema changes
  • Better Developer Agility with NoSQL Access with Memcached API to InnoDB
  • Improved Replication for high performance, self-healing distributed deployments
  • Improved Performance Schema for better instrumentation
  • Improved Security for worry-free application deployments
  • And other Important Enhancements

This article serves as a DBA and Developer guide to MySQL 5.6 as it highlights the key new features in each of these areas, many with practical use case examples.

Mysql들어갔더니 5.6으로 릴리즈되어있네요;;


Mysql5.6.7 (2012-09-29, Release Candidate)


작년 9월에 RC버전까지 확인 하고 언제 되는가 기다리고 있었는데... ㅡㅡㅋ


2월 5일에 되었군요 흠흠........


요즘에 SphinxQL이랑 SphinxSE 테스트도 해봐야되는데....


이것도 체크해야겠군요 흠흠


암튼 자세한 내용은 다음에~~

Posted by 시니^^