際際滷

際際滷Share a Scribd company logo
Real MySQL
Internal temporary table
FROM  觚 貎朱Μ ->  企(Derived)
SELECT * FROM (
SELECT * FROM (
SELECT * FROM tab WHERE fd IN (1)
) x
) y;
+----+-------------+------------+
| id | select_type | table
|
+----+-------------+------------+
| 1 | PRIMARY
| <derived2> |
| 2 | DERIVED
| <derived3> |
| 3 | DERIVED
| tab
|
+----+-------------+------------+
Real MySQL

http://cafe.naver.com/realmysql
Internal temporary table
  企 螳
mysql> SHOW STATUS LIKE 'Created_tmp_tables;
+-------------------------+-------+
| Created_tmp_tables
| 13
|
+-------------------------+-------+
mysql> SELECT * FROM (
SELECT * FROM (
SELECT * FROM tab where fd in (1)) x) y;

mysql> SHOW STATUS LIKE 'Created_tmp_tables;
+-------------------------+-------+
| Created_tmp_tables
| 15
|
+-------------------------+-------+
Real MySQL

http://cafe.naver.com/realmysql
Deterministic
 CREATE FUNCTION
CREATE
FUNCTION getCurrentTime() RETURN DATETIME
[ DETERMINISTIC | NOT DETERMINISTIC ]
BEGIN
DECLARE v_now DATETIME;
SELECT NOW() INTO v_now;
RETURN v_now;
END

Real MySQL

http://cafe.naver.com/realmysql
Deterministic
  貎朱Μ 谿企 ?
SELECT *
FROM huge_table
WHERE expire_dttm > getCurrTime_DETERM ();
SELECT *
FROM huge_table
WHERE expire_dttm > getCurrTime_NOTDETERMIN ();
 SYSDATE() NOW()  谿企 ?
Real MySQL

http://cafe.naver.com/realmysql
Deterministic
 NOT-DETERMINISTIC Function
+----+-------------+----------+------+
| id | select_type | table
| type |
+----+-------------+----------+------+
| 1 | SIMPLE
| huge_tab | ALL |
+----+-------------+----------+------+

 SYSDATE() NOW()  谿企 ?

Real MySQL

http://cafe.naver.com/realmysql
IN (subquery)
[NOT] IN (subquery) 觜
 subquery螳 襾殊 豌襴讌 覈詩
SELECT *
FROM tab outer
WHERE fd IN (SELECT fd FROM tab inner);
+----+--------------------+-------+
| id | select_type
| table |
+----+--------------------+-------+
| 1 | PRIMARY
| outer |
| 2 | DEPENDENT SUBQUERY | inner |
+----+--------------------+-------+

Real MySQL

http://cafe.naver.com/realmysql
IN (subquery)
ろ 螻 覩
+----+--------------------+-------+
| id | select_type
| table |
+----+--------------------+-------+
| 1 | PRIMARY
| outer |
| 2 | DEPENDENT SUBQUERY | inner |
+----+--------------------+-------+
FOR (row1 IN outer){
exist( SELECT * FROM inner WHERE inner.fd=row1.fd )
}

Real MySQL

http://cafe.naver.com/realmysql
IN (subquery)
IN (subquery)
Join企 Derived 企
SELECT *
FROM tab outer, tab inner
WHERE outer.fd=inner.fd;

NOT IN (subquery)
Anti-Join企 Dervied襯 伎 Anti-Join
SELECT *
FROM tab outer
LEFT JOIN tab1 inner WHERE inner.fd=outer.fd
WHERE inner.fd IS NULL;
Real MySQL

http://cafe.naver.com/realmysql
IN (subquery)
觚 貎朱Μ 譴覲 蟇 
Derived 企 伎
SELECT [STRAIGHT_JOIN] *
FROM
(SELECT fd FROM tab inner GROUP BY ) x,
tab outer
WHERE outer.fd = x.fd

觚 貎朱Μ 伎 
SELECT * FROM tab outer
WHERE outer.fd IN ( 1,2,3 )
Real MySQL

http://cafe.naver.com/realmysql
Transaction propagation
 A 一危磯伎れ 碁 碁  螳
 襷ろ一 企 DB  殊

BEGIN
UPDATE
SELECT
UPDATE
Commit

master_tbl SET  WHERE 
* FROM slave_tbl WHERE 
master_tbl SET  WHERE 
/ Rollback

Real MySQL

http://cafe.naver.com/realmysql
Transaction propagation
 DB 碁 譴螳 碁 ろ語 
BEGIN
UPDATE tbl SET  WHERE 
Cassandra or HBase SET 
Send email or some other network job 
Commit / Rollback

Real MySQL

http://cafe.naver.com/realmysql
Transaction propagation
 碁  讌一
MySQL 覯 貊 蠍 螳 一
 MySQL 覯 Record 蠍 伎 讌 覦
るジ 語 蠍 蠍 蠍語伎
 MySQL 覯  覿 , 覓企  豌襴 覈詩
 UndoRecord SystemTablespace 
襷 Undo襦 誤 SELECT 焔 

Real MySQL

http://cafe.naver.com/realmysql
Transaction propagation
 碁 覈磯
mysql> SHOW ENGINE INNODB STATUS;
-----------TRANSACTIONS
-----------
---TRANSACTION 3F0B, ACTIVE 23 sec, OS thread id 1252
1 lock struct(s), heap size 320, 0 row lock(s), undo log entries 1
MySQL thread id 1, query id 85 localhost 127.0.0.1 root
...

 Unix 螻 OS
mysql> pager grep ACTIVE
Real MySQL

http://cafe.naver.com/realmysql
覦 貎朱Μ
SELECT
IFNULL(COUNT(fd1),0) as fd1, IFNULL(AVG(fd5),0) as fd4, IFNULL(fd6, 'Y') as fd5,
FROM (
SELECT fd1, fd2, 1 as fd3,
IF(fd4 <> fd6, 0,1) as fd4, IF(fd5 <> fd6, 1,0) as fd5, 0 as fd6 , 0 as fd7, fd8
FROM tab1 a
INNER JOIN tab2 b ON a.fd10 = b.fd10
WHERE b.fd13 IN (1, 2, 3, 4)
AND b.fd14 >= DATE_ADD('2011-10-08', INTERVAL 12 HOUR)
AND b.fd15 < DATE_ADD('2011-10-09', INTERVAL 12 HOUR)
GROUP BY fd1, fd2, fd3
UNION ALL
SELECT 0,0,0,0,0,1,0,a.fd1
FROM tab4 a
LEFT JOIN tab6 b ON a.fd1 = b.fd1
and b.fd11 < DATE_ADD('2013-10-08', INTERVAL 12 HOUR)
and b.fd12 in (12, 13)
WHERE a.fd13 IS NOT NULL
and a.fd15 IN (111,109)




Real MySQL

http://cafe.naver.com/realmysql
覦 貎朱Μ
 豢覿  ルリ骸 讌譴 
 貎朱Μ襯 伎 DBA螳 る OK
 襷  ルモ + DBA螳 る
願 旧 谿 螳覦 語 蠏 

 伎襦 螻  ル 覿
 蟆 る MySQL -> 覲旧″ 貎朱Μ X
 貎朱Μ螳 企至 讌  覈襯願る,
貉碁, 螳ロ 譴蟾讌 讓手 ろ
Real MySQL

http://cafe.naver.com/realmysql
INDEX
 UNIQUE INDEX ?
 PRIMARY KEY  UNIQUE INDEX襦 Clustering
 Secondary Index PK  (InnoDB)

 碁煙 襷襦
INSERT UPDATE DELETE 
SELECT 焔 

Real MySQL

http://cafe.naver.com/realmysql
INDEX
 碁煙 譴覲糾骸 譴豌
INDEX (fd1, pk1) = INDEX (fd1)
UNIQUE INDEX (fd1)  INDEX (fd1)
INDEX (fd1, fd2)  INDEX (fd2, fd1)
INDEX (pk1, fd1)  INDEX (fd1, pk1)
INDEX (fd1, fd2)  INDEX (fd1, fd2, fd3)

Real MySQL

http://cafe.naver.com/realmysql
Real MySQL
QnA (http://cafe.naver.com/realmysql)

Real MySQL

http://cafe.naver.com/realmysql

More Related Content

What's hot (20)

MySQL JOIN
MySQL JOINMySQL JOIN
MySQL JOIN
Hoyoung Jung
(SQL豐覲伎襯 , 貎朱Μ豕 for SQL)SQL貎朱ΜTip,豕,豕SQL焔逢覯蟲
(SQL豐覲伎襯 , 貎朱Μ豕 for SQL)SQL貎朱ΜTip,豕,豕SQL焔逢覯蟲(SQL豐覲伎襯 , 貎朱Μ豕 for SQL)SQL貎朱ΜTip,豕,豕SQL焔逢覯蟲
(SQL豐覲伎襯 , 貎朱Μ豕 for SQL)SQL貎朱ΜTip,豕,豕SQL焔逢覯蟲
襴(蟲襦讌碁讌3覯豢蟲 2覿蟇磯Μ)
過メ求Sql=メ釈=釈メ 2
過メ求Sql=メ釈=釈メ 2過メ求Sql=メ釈=釈メ 2
過メ求Sql=メ釈=釈メ 2
MySQL delete.update
MySQL delete.updateMySQL delete.update
MySQL delete.update
Hoyoung Jung
[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning
PgDay.Seoul
過メ求 SQL =メ釈=釈メ 1
過メ求 SQL =メ釈=釈メ 1過メ求 SQL =メ釈=釈メ 1
過メ求 SQL =メ釈=釈メ 1
過メ求Sql=メ釈=釈メ 3
過メ求Sql=メ釈=釈メ 3過メ求Sql=メ釈=釈メ 3
過メ求Sql=メ釈=釈メ 3
(る狩危/SQL 螳譬)貎朱Μ る狩伎 10053 企欧
(る狩危/SQL 螳譬)貎朱Μ  る狩伎 10053 企欧(る狩危/SQL 螳譬)貎朱Μ  る狩伎 10053 企欧
(る狩危/SQL 螳譬)貎朱Μ る狩伎 10053 企欧
襴(蟲襦讌碁讌3覯豢蟲 2覿蟇磯Μ)
6レ^瑚骸觚貎朱Μ
6レ^瑚骸觚貎朱Μ6レ^瑚骸觚貎朱Μ
6レ^瑚骸觚貎朱Μ
WooYeon Lee
伎 麹襦蠏碁覦 1
伎 麹襦蠏碁覦 1 伎 麹襦蠏碁覦 1
伎 麹襦蠏碁覦 1
SeongHyun Ahn
伎 一危磯伎 郁屋 2
伎 一危磯伎 郁屋 2伎 一危磯伎 郁屋 2
伎 一危磯伎 郁屋 2
SeongHyun Ahn
#1.SQL豐覲伎 Schema Objects蟾讌(SQL/る狩危/ITる願″/讌/れ蟲″豢豌)
#1.SQL豐覲伎 Schema Objects蟾讌(SQL/る狩危/ITる願″/讌/れ蟲″豢豌)#1.SQL豐覲伎 Schema Objects蟾讌(SQL/る狩危/ITる願″/讌/れ蟲″豢豌)
#1.SQL豐覲伎 Schema Objects蟾讌(SQL/る狩危/ITる願″/讌/れ蟲″豢豌)
襴(蟲襦讌碁讌3覯豢蟲 2覿蟇磯Μ)
伎 一危磯伎 郁屋 1
伎 一危磯伎 郁屋 1伎 一危磯伎 郁屋 1
伎 一危磯伎 郁屋 1
SeongHyun Ahn
伎 蠍磯蓋 覓碁
伎 蠍磯蓋 覓碁伎 蠍磯蓋 覓碁
伎 蠍磯蓋 覓碁
SeongHyun Ahn
TABLE ACCESS 伎 伎 SQL _Wh oracle
TABLE ACCESS 伎 伎 SQL _Wh oracleTABLE ACCESS 伎 伎 SQL _Wh oracle
TABLE ACCESS 伎 伎 SQL _Wh oracle
過メ求Sql=メ釈=釈メ 4
過メ求Sql=メ釈=釈メ 4過メ求Sql=メ釈=釈メ 4
過メ求Sql=メ釈=釈メ 4
螳覦れ れ SQL 7螳讌
螳覦れ  れ SQL 7螳讌螳覦れ  れ SQL 7螳讌
螳覦れ れ SQL 7螳讌
JungGeun Lee
[212]メ戟≡求dot玩≡ =釈玩過求
[212]メ戟≡求dot玩≡ =釈玩過求[212]メ戟≡求dot玩≡ =釈玩過求
[212]メ戟≡求dot玩≡ =釈玩過求
NAVER D2
Perl Script
Perl ScriptPerl Script
Perl Script
8 企 蟇壱蠍
8 企   蟇壱蠍8 企   蟇壱蠍
8 企 蟇壱蠍
sang doc Lee
過メ求Sql=メ釈=釈メ 2
過メ求Sql=メ釈=釈メ 2過メ求Sql=メ釈=釈メ 2
過メ求Sql=メ釈=釈メ 2
MySQL delete.update
MySQL delete.updateMySQL delete.update
MySQL delete.update
Hoyoung Jung
[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning
PgDay.Seoul
過メ求 SQL =メ釈=釈メ 1
過メ求 SQL =メ釈=釈メ 1過メ求 SQL =メ釈=釈メ 1
過メ求 SQL =メ釈=釈メ 1
過メ求Sql=メ釈=釈メ 3
過メ求Sql=メ釈=釈メ 3過メ求Sql=メ釈=釈メ 3
過メ求Sql=メ釈=釈メ 3
6レ^瑚骸觚貎朱Μ
6レ^瑚骸觚貎朱Μ6レ^瑚骸觚貎朱Μ
6レ^瑚骸觚貎朱Μ
WooYeon Lee
伎 麹襦蠏碁覦 1
伎 麹襦蠏碁覦 1 伎 麹襦蠏碁覦 1
伎 麹襦蠏碁覦 1
SeongHyun Ahn
伎 一危磯伎 郁屋 2
伎 一危磯伎 郁屋 2伎 一危磯伎 郁屋 2
伎 一危磯伎 郁屋 2
SeongHyun Ahn
#1.SQL豐覲伎 Schema Objects蟾讌(SQL/る狩危/ITる願″/讌/れ蟲″豢豌)
#1.SQL豐覲伎 Schema Objects蟾讌(SQL/る狩危/ITる願″/讌/れ蟲″豢豌)#1.SQL豐覲伎 Schema Objects蟾讌(SQL/る狩危/ITる願″/讌/れ蟲″豢豌)
#1.SQL豐覲伎 Schema Objects蟾讌(SQL/る狩危/ITる願″/讌/れ蟲″豢豌)
襴(蟲襦讌碁讌3覯豢蟲 2覿蟇磯Μ)
伎 一危磯伎 郁屋 1
伎 一危磯伎 郁屋 1伎 一危磯伎 郁屋 1
伎 一危磯伎 郁屋 1
SeongHyun Ahn
伎 蠍磯蓋 覓碁
伎 蠍磯蓋 覓碁伎 蠍磯蓋 覓碁
伎 蠍磯蓋 覓碁
SeongHyun Ahn
TABLE ACCESS 伎 伎 SQL _Wh oracle
TABLE ACCESS 伎 伎 SQL _Wh oracleTABLE ACCESS 伎 伎 SQL _Wh oracle
TABLE ACCESS 伎 伎 SQL _Wh oracle
過メ求Sql=メ釈=釈メ 4
過メ求Sql=メ釈=釈メ 4過メ求Sql=メ釈=釈メ 4
過メ求Sql=メ釈=釈メ 4
螳覦れ れ SQL 7螳讌
螳覦れ  れ SQL 7螳讌螳覦れ  れ SQL 7螳讌
螳覦れ れ SQL 7螳讌
JungGeun Lee
[212]メ戟≡求dot玩≡ =釈玩過求
[212]メ戟≡求dot玩≡ =釈玩過求[212]メ戟≡求dot玩≡ =釈玩過求
[212]メ戟≡求dot玩≡ =釈玩過求
NAVER D2
Perl Script
Perl ScriptPerl Script
Perl Script
8 企 蟇壱蠍
8 企   蟇壱蠍8 企   蟇壱蠍
8 企 蟇壱蠍
sang doc Lee

Viewers also liked (7)

[PHPFest 2013] High performance Javascript
[PHPFest 2013] High performance Javascript[PHPFest 2013] High performance Javascript
[PHPFest 2013] High performance Javascript
phpkorea
Systems engineering met Polarion
Systems engineering met PolarionSystems engineering met Polarion
Systems engineering met Polarion
Harry Julsing
The Art of Project Management #13 殊 豢讌 覦覯
The Art of Project Management #13 殊 豢讌 覦覯The Art of Project Management #13 殊 豢讌 覦覯
The Art of Project Management #13 殊 豢讌 覦覯
Jubok Kim
れ 谿螳 襦 蟯襴 覈螳讌 螳
れ 谿螳 襦 蟯襴 覈螳讌 螳れ 谿螳 襦 蟯襴 覈螳讌 螳
れ 谿螳 襦 蟯襴 覈螳讌 螳
Using JIRA Software for Issue Tracking
Using JIRA Software for Issue TrackingUsing JIRA Software for Issue Tracking
Using JIRA Software for Issue Tracking
Anjali Rao
Introduction To Jira
Introduction To JiraIntroduction To Jira
Introduction To Jira
Hua Soon Sim
Introduction to JIRA & Agile Project Management
Introduction to JIRA & Agile Project ManagementIntroduction to JIRA & Agile Project Management
Introduction to JIRA & Agile Project Management
Dan Chuparkoff
[PHPFest 2013] High performance Javascript
[PHPFest 2013] High performance Javascript[PHPFest 2013] High performance Javascript
[PHPFest 2013] High performance Javascript
phpkorea
Systems engineering met Polarion
Systems engineering met PolarionSystems engineering met Polarion
Systems engineering met Polarion
Harry Julsing
The Art of Project Management #13 殊 豢讌 覦覯
The Art of Project Management #13 殊 豢讌 覦覯The Art of Project Management #13 殊 豢讌 覦覯
The Art of Project Management #13 殊 豢讌 覦覯
Jubok Kim
れ 谿螳 襦 蟯襴 覈螳讌 螳
れ 谿螳 襦 蟯襴 覈螳讌 螳れ 谿螳 襦 蟯襴 覈螳讌 螳
れ 谿螳 襦 蟯襴 覈螳讌 螳
Using JIRA Software for Issue Tracking
Using JIRA Software for Issue TrackingUsing JIRA Software for Issue Tracking
Using JIRA Software for Issue Tracking
Anjali Rao
Introduction To Jira
Introduction To JiraIntroduction To Jira
Introduction To Jira
Hua Soon Sim
Introduction to JIRA & Agile Project Management
Introduction to JIRA & Agile Project ManagementIntroduction to JIRA & Agile Project Management
Introduction to JIRA & Agile Project Management
Dan Chuparkoff

[PHPFest 2013] Real mysql

  • 2. Internal temporary table FROM 觚 貎朱Μ -> 企(Derived) SELECT * FROM ( SELECT * FROM ( SELECT * FROM tab WHERE fd IN (1) ) x ) y; +----+-------------+------------+ | id | select_type | table | +----+-------------+------------+ | 1 | PRIMARY | <derived2> | | 2 | DERIVED | <derived3> | | 3 | DERIVED | tab | +----+-------------+------------+ Real MySQL http://cafe.naver.com/realmysql
  • 3. Internal temporary table 企 螳 mysql> SHOW STATUS LIKE 'Created_tmp_tables; +-------------------------+-------+ | Created_tmp_tables | 13 | +-------------------------+-------+ mysql> SELECT * FROM ( SELECT * FROM ( SELECT * FROM tab where fd in (1)) x) y; mysql> SHOW STATUS LIKE 'Created_tmp_tables; +-------------------------+-------+ | Created_tmp_tables | 15 | +-------------------------+-------+ Real MySQL http://cafe.naver.com/realmysql
  • 4. Deterministic CREATE FUNCTION CREATE FUNCTION getCurrentTime() RETURN DATETIME [ DETERMINISTIC | NOT DETERMINISTIC ] BEGIN DECLARE v_now DATETIME; SELECT NOW() INTO v_now; RETURN v_now; END Real MySQL http://cafe.naver.com/realmysql
  • 5. Deterministic 貎朱Μ 谿企 ? SELECT * FROM huge_table WHERE expire_dttm > getCurrTime_DETERM (); SELECT * FROM huge_table WHERE expire_dttm > getCurrTime_NOTDETERMIN (); SYSDATE() NOW() 谿企 ? Real MySQL http://cafe.naver.com/realmysql
  • 6. Deterministic NOT-DETERMINISTIC Function +----+-------------+----------+------+ | id | select_type | table | type | +----+-------------+----------+------+ | 1 | SIMPLE | huge_tab | ALL | +----+-------------+----------+------+ SYSDATE() NOW() 谿企 ? Real MySQL http://cafe.naver.com/realmysql
  • 7. IN (subquery) [NOT] IN (subquery) 觜 subquery螳 襾殊 豌襴讌 覈詩 SELECT * FROM tab outer WHERE fd IN (SELECT fd FROM tab inner); +----+--------------------+-------+ | id | select_type | table | +----+--------------------+-------+ | 1 | PRIMARY | outer | | 2 | DEPENDENT SUBQUERY | inner | +----+--------------------+-------+ Real MySQL http://cafe.naver.com/realmysql
  • 8. IN (subquery) ろ 螻 覩 +----+--------------------+-------+ | id | select_type | table | +----+--------------------+-------+ | 1 | PRIMARY | outer | | 2 | DEPENDENT SUBQUERY | inner | +----+--------------------+-------+ FOR (row1 IN outer){ exist( SELECT * FROM inner WHERE inner.fd=row1.fd ) } Real MySQL http://cafe.naver.com/realmysql
  • 9. IN (subquery) IN (subquery) Join企 Derived 企 SELECT * FROM tab outer, tab inner WHERE outer.fd=inner.fd; NOT IN (subquery) Anti-Join企 Dervied襯 伎 Anti-Join SELECT * FROM tab outer LEFT JOIN tab1 inner WHERE inner.fd=outer.fd WHERE inner.fd IS NULL; Real MySQL http://cafe.naver.com/realmysql
  • 10. IN (subquery) 觚 貎朱Μ 譴覲 蟇 Derived 企 伎 SELECT [STRAIGHT_JOIN] * FROM (SELECT fd FROM tab inner GROUP BY ) x, tab outer WHERE outer.fd = x.fd 觚 貎朱Μ 伎 SELECT * FROM tab outer WHERE outer.fd IN ( 1,2,3 ) Real MySQL http://cafe.naver.com/realmysql
  • 11. Transaction propagation A 一危磯伎れ 碁 碁 螳 襷ろ一 企 DB 殊 BEGIN UPDATE SELECT UPDATE Commit master_tbl SET WHERE * FROM slave_tbl WHERE master_tbl SET WHERE / Rollback Real MySQL http://cafe.naver.com/realmysql
  • 12. Transaction propagation DB 碁 譴螳 碁 ろ語 BEGIN UPDATE tbl SET WHERE Cassandra or HBase SET Send email or some other network job Commit / Rollback Real MySQL http://cafe.naver.com/realmysql
  • 13. Transaction propagation 碁 讌一 MySQL 覯 貊 蠍 螳 一 MySQL 覯 Record 蠍 伎 讌 覦 るジ 語 蠍 蠍 蠍語伎 MySQL 覯 覿 , 覓企 豌襴 覈詩 UndoRecord SystemTablespace 襷 Undo襦 誤 SELECT 焔 Real MySQL http://cafe.naver.com/realmysql
  • 14. Transaction propagation 碁 覈磯 mysql> SHOW ENGINE INNODB STATUS; -----------TRANSACTIONS ----------- ---TRANSACTION 3F0B, ACTIVE 23 sec, OS thread id 1252 1 lock struct(s), heap size 320, 0 row lock(s), undo log entries 1 MySQL thread id 1, query id 85 localhost 127.0.0.1 root ... Unix 螻 OS mysql> pager grep ACTIVE Real MySQL http://cafe.naver.com/realmysql
  • 15. 覦 貎朱Μ SELECT IFNULL(COUNT(fd1),0) as fd1, IFNULL(AVG(fd5),0) as fd4, IFNULL(fd6, 'Y') as fd5, FROM ( SELECT fd1, fd2, 1 as fd3, IF(fd4 <> fd6, 0,1) as fd4, IF(fd5 <> fd6, 1,0) as fd5, 0 as fd6 , 0 as fd7, fd8 FROM tab1 a INNER JOIN tab2 b ON a.fd10 = b.fd10 WHERE b.fd13 IN (1, 2, 3, 4) AND b.fd14 >= DATE_ADD('2011-10-08', INTERVAL 12 HOUR) AND b.fd15 < DATE_ADD('2011-10-09', INTERVAL 12 HOUR) GROUP BY fd1, fd2, fd3 UNION ALL SELECT 0,0,0,0,0,1,0,a.fd1 FROM tab4 a LEFT JOIN tab6 b ON a.fd1 = b.fd1 and b.fd11 < DATE_ADD('2013-10-08', INTERVAL 12 HOUR) and b.fd12 in (12, 13) WHERE a.fd13 IS NOT NULL and a.fd15 IN (111,109) Real MySQL http://cafe.naver.com/realmysql
  • 16. 覦 貎朱Μ 豢覿 ルリ骸 讌譴 貎朱Μ襯 伎 DBA螳 る OK 襷 ルモ + DBA螳 る 願 旧 谿 螳覦 語 蠏 伎襦 螻 ル 覿 蟆 る MySQL -> 覲旧″ 貎朱Μ X 貎朱Μ螳 企至 讌 覈襯願る, 貉碁, 螳ロ 譴蟾讌 讓手 ろ Real MySQL http://cafe.naver.com/realmysql
  • 17. INDEX UNIQUE INDEX ? PRIMARY KEY UNIQUE INDEX襦 Clustering Secondary Index PK (InnoDB) 碁煙 襷襦 INSERT UPDATE DELETE SELECT 焔 Real MySQL http://cafe.naver.com/realmysql
  • 18. INDEX 碁煙 譴覲糾骸 譴豌 INDEX (fd1, pk1) = INDEX (fd1) UNIQUE INDEX (fd1) INDEX (fd1) INDEX (fd1, fd2) INDEX (fd2, fd1) INDEX (pk1, fd1) INDEX (fd1, pk1) INDEX (fd1, fd2) INDEX (fd1, fd2, fd3) Real MySQL http://cafe.naver.com/realmysql
  • 19. Real MySQL QnA (http://cafe.naver.com/realmysql) Real MySQL http://cafe.naver.com/realmysql