EXPLAIN EXTENDED
5.7からはデフォルトでEXTENDED &PARTITIONSがつい
てくる
EXPLAIN直後に SHOW WARNINGS でオプティマイザーが最適化した後
のクエリーが⾒える
-
5.6まではEXTENDEDとPARTITIONSを同時に指定できなかったけ
ど、5.7はまとめて出してくれる
-
想像したのと違う遅くなり⽅ をしたらEXTENDED⾒た⽅が
良い
特に5.6の蝉ジョインとか蝉ジョインとか蝉ジョインとか-
MySQL :: MySQL 5.6 リファレンスマニュアル :: 8.8.3
EXPLAIN EXTENDED 出⼒フォーマット
44/98
46.
EXPLAIN EXTENDED
*************************** 1.row ***************************
id: 1
select_type: SIMPLE
table: hg
type: ref
possible_keys: PRIMARY,hogehoge_idx05,hogehoge_idx09,hogehoge_idx10,hogehoge_idx11,hogehoge_idx12,ho
gehoge_idx13,hogehoge_idx14,hogehoge_idx15,hogehoge_idx16,hogehoge_idx17,hogehoge_idx19,idx_col2_col
3_col1
key: hogehoge_idx05
key_len: 5
ref: const
rows: 170287
filtered: 100.00
Extra: Using index condition; Using where; Using temporary; Using filesort
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: fg
type: ref
possible_keys: fugafuga_idx1,idx_fugafuga_04,idx_col1_col2_col3
key: idx_fugafuga_04
key_len: 7
ref: hg.col2,const
rows: 5
filtered: 100.00
Extra: Using index
2 rows in set, 1 warning (0.00 sec)
45/98
47.
SHOW WARNINGS
*************************** 1.row ***************************
Level: Note
Code: 1003
Message: /* select#1 */ select `fg`.`fugafuga_id` AS `fugafuga_id
`,`hg`.`col3` AS `col3`,`hg`.`title` AS `hogehoge_title`,`hg`.`co
l2` AS `col2`,`hg`.`col4` AS `col4`,`hg`.`fugafuga_count` AS `fug
afuga_count` from `fugafuga` `fg` join `hogehoge` `hg` where ((`f
g`.`col1` = `hg`.`col2`) and (`hg`.`col2` = 210) and (`hg`.`col2
` = 1) and (`fg`.`col5` = 1) and (`hg`.`col6` in (0,100,101))) or
der by `fg`.`fugafuga_id` desc limit 0,5
46/98
Data Input Methodのデフォルトを⼀気にSQLで書き換
えるとか
mysql>UPDATE data_input_fields JOIN data_input_data ON data_input_fields.id= data_i
nput_data.data_input_field_id JOIN data_input ON data_input_fields.data_input_id = d
ata_input.id
-> SET data_input_data.value = 'pmp' WHERE data_input.name LIKE 'Percona %' AND
data_input_fields.name = 'Username';
mysql> UPDATE data_input_fields JOIN data_input_data ON data_input_fields.id= data_i
nput_data.data_input_field_id JOIN data_input ON data_input_fields.data_input_id = d
ata_input.id
-> SET data_input_data.value = 'pmp_pass' WHERE data_input.name LIKE 'Percona %
' AND data_input_fields.name = 'Password';
mysql> UPDATE data_input_fields JOIN data_input_data ON data_input_fields.id= data_i
nput_data.data_input_field_id JOIN data_input ON data_input_fields.data_input_id = d
ata_input.id
-> SET data_input_data.value = '3306', data_input_data.t_value = 'on' WHERE data
_input.name LIKE 'Percona %' AND data_input_fields.name = 'Port';
56/98
sys
p̲sの情報を⾒やすくするためのビューやストアドファンク
ション、ストアドプロシージャ
MySQL 5.7.7 andhigher includes the sys schema,
a set of objects that helps DBAs and developers
interpret data collected by the Performance
Schema.
https://dev.mysql.com/doc/refman/5.7/en/sys-
schema.html
75/98
77.
sysのインストール(5.6向け)
$ git clonehttps://github.com/mysql/mysql-sys.git
Initialized empty Git repository in /root/mysql-sys/.git/
remote: Counting objects: 3009, done.
remote: Total 3009 (delta 0), reused 0 (delta 0), pack-reused 3008
Receiving objects: 100% (3009/3009), 1.17 MiB | 466 KiB/s, done.
Resolving deltas: 100% (1768/1768), done.
$ cd mysql-sys
$ mysql -uroot -p < sys_56.sql
$ mysql -uroot -p
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
76/98