Comments 29
Спасибо. Хоть и не фанат mysql, но информация оказалось полезной. :)
А зачем вы переводите подобные вещи?
UFO just landed and posted this here
а может лучше, тех, кто не знает язык оригинала и не дружит с переводчиками и гугл-транслей-тулз выгонять сразу, за проф не пригодность?
Спасибо. Про команду знал, но пользовался редко. Жалко что все примеры на табличках в несколько записей. С ними как раз проблем обычно не возникает
Хорошая статья.
Те, кто обладает достаточным уровнем, чтобы таким интересовать, английский знают, чтобы прочитать в оригинале.
Что-то мне подсказывает, что не станет хуже от того, что знающие английский язык и интересующиеся как сделать свои SQL-запросы лучше люди увидят подходящую по тематике статью на Хабре, а не на одном из массы форумов.
UFO just landed and posted this here
Ребята, которые ведут MySQL Performance Blog (см. первоисточник статьи), написали совершенно изумительную книгу по оптимизации производительности MySQL сервера. В прошлом месяце выпустили русскоязычную версию этой книги.
MySQL. Оптимизация производительности, 2-е издание
www.symbol.ru/alphabet/734220.html
MySQL. Оптимизация производительности, 2-е издание
www.symbol.ru/alphabet/734220.html
Пользуюсь EXPLAIN EXTENDED давно. На самом деле очень удобно. Спасибо автору.
У меня что-то не совсем так, как у вас работает:
mysql> drop database test;
Query OK, 3 rows affected (0.39 sec)
mysql> create database test;
Query OK, 1 row affected (0.01 sec)
mysql> use test
Database changed
mysql> CREATE TABLE j1 (c1 int);
Query OK, 0 rows affected (0.14 sec)
mysql> CREATE TABLE j2 (c1 int);
Query OK, 0 rows affected (0.09 sec)
mysql> CREATE TABLE j3 (c1 int);
Query OK, 0 rows affected (0.09 sec)
mysql> EXPLAIN extended SELECT j1.c1 FROM j1, j2, j3 WHERE j1.c1 = j2.c1 AND j3.c1 = j1.c1;
+----+-------------+-------+------+---------------+------+---------+------+------+----------+--------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+----------+--------------------------------+
| 1 | SIMPLE | j1 | ALL | NULL | NULL | NULL | NULL | 1 | 100.00 | |
| 1 | SIMPLE | j2 | ALL | NULL | NULL | NULL | NULL | 1 | 100.00 | Using where; Using join buffer |
| 1 | SIMPLE | j3 | ALL | NULL | NULL | NULL | NULL | 1 | 100.00 | Using where; Using join buffer |
+----+-------------+-------+------+---------------+------+---------+------+------+----------+--------------------------------+
3 rows in set, 1 warning (0.03 sec)
mysql> SHOW warnings;
+-------+------+----------------------------------------------------------------------------------------------------------------------------
------------------------------------------------+
| Level | Code | Message
|
+-------+------+----------------------------------------------------------------------------------------------------------------------------
------------------------------------------------+
| Note | 1003 | select `test`.`j1`.`c1` AS `c1` from `test`.`j1` join `test`.`j2` join `test`.`j3` where ((`test`.`j2`.`c1` = `test`.`j1`.`
c1`) and (`test`.`j3`.`c1` = `test`.`j1`.`c1`)) |
+-------+------+----------------------------------------------------------------------------------------------------------------------------
------------------------------------------------+
1 row in set (0.02 sec)
mysql>
mysql> drop database test;
Query OK, 3 rows affected (0.39 sec)
mysql> create database test;
Query OK, 1 row affected (0.01 sec)
mysql> use test
Database changed
mysql> CREATE TABLE j1 (c1 int);
Query OK, 0 rows affected (0.14 sec)
mysql> CREATE TABLE j2 (c1 int);
Query OK, 0 rows affected (0.09 sec)
mysql> CREATE TABLE j3 (c1 int);
Query OK, 0 rows affected (0.09 sec)
mysql> EXPLAIN extended SELECT j1.c1 FROM j1, j2, j3 WHERE j1.c1 = j2.c1 AND j3.c1 = j1.c1;
+----+-------------+-------+------+---------------+------+---------+------+------+----------+--------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+----------+--------------------------------+
| 1 | SIMPLE | j1 | ALL | NULL | NULL | NULL | NULL | 1 | 100.00 | |
| 1 | SIMPLE | j2 | ALL | NULL | NULL | NULL | NULL | 1 | 100.00 | Using where; Using join buffer |
| 1 | SIMPLE | j3 | ALL | NULL | NULL | NULL | NULL | 1 | 100.00 | Using where; Using join buffer |
+----+-------------+-------+------+---------------+------+---------+------+------+----------+--------------------------------+
3 rows in set, 1 warning (0.03 sec)
mysql> SHOW warnings;
+-------+------+----------------------------------------------------------------------------------------------------------------------------
------------------------------------------------+
| Level | Code | Message
|
+-------+------+----------------------------------------------------------------------------------------------------------------------------
------------------------------------------------+
| Note | 1003 | select `test`.`j1`.`c1` AS `c1` from `test`.`j1` join `test`.`j2` join `test`.`j3` where ((`test`.`j2`.`c1` = `test`.`j1`.`
c1`) and (`test`.`j3`.`c1` = `test`.`j1`.`c1`)) |
+-------+------+----------------------------------------------------------------------------------------------------------------------------
------------------------------------------------+
1 row in set (0.02 sec)
mysql>
Sign up to leave a comment.
Что интересного нам расскажет EXPLAIN EXTENDED?