Комментарии 29
Спасибо. Хоть и не фанат mysql, но информация оказалось полезной. :)
Статьи переводят для тех, кто не знает язык оригинала. Ваш кэп.
а может лучше, тех, кто не знает язык оригинала и не дружит с переводчиками и гугл-транслей-тулз выгонять сразу, за проф не пригодность?
т.е вы предлагаете 2 выхода:
1) выучить язык оригинала
и
2) использовать гугл-транслейт для техничный статей.

успехов
я предлагаю выучить язык оригинала или английский. Использовать гугл-транслейт можно, если приходиться переписывать с китайцами.
А я предлагаю выгонять за профнепригодность тех, у кого подбородок на груди лежит.
Спасибо. Про команду знал, но пользовался редко. Жалко что все примеры на табличках в несколько записей. С ними как раз проблем обычно не возникает
Нормальные примеры.
Эта статейка рассматривает узкий вопрос переписывания запросов. Про обычный EXPLAIN понаписано и так достаточно. Прочитайте сначала все про него.
Те, кто обладает достаточным уровнем, чтобы таким интересовать, английский знают, чтобы прочитать в оригинале.
Что-то мне подсказывает, что не станет хуже от того, что знающие английский язык и интересующиеся как сделать свои SQL-запросы лучше люди увидят подходящую по тематике статью на Хабре, а не на одном из массы форумов.
Ничего подобного. Я обладаю достаточным уровнем, чтобы таким интересоваться, но английский не знаю.
и как вы достигли такого уровня, не научившись читать не сложный английский текст?
Ребята, которые ведут MySQL Performance Blog (см. первоисточник статьи), написали совершенно изумительную книгу по оптимизации производительности MySQL сервера. В прошлом месяце выпустили русскоязычную версию этой книги.

MySQL. Оптимизация производительности, 2-е издание
www.symbol.ru/alphabet/734220.html
Вот я и говорю. Тонкие оптимизаторы ищут материалы не на хабре отнюдь, и не надо пытаться этот ход вещей поменять. Хабр — по сути своей курилка для Околоайтишной русскоязычной тусовки. Это не специализированный технический форум MySQL или любых других штучек.
Вас кто-то обманул. На хабре куча статей по всяким тонким штучкам, которых больше нет нигде.
Ну и зачем минусовать? Есть куча статей, есть. Но это не форум для обсуждения технических вопросов все равно. Не SQL.ru например…
Вы еще скажите, что Хабр — это не медицинский сайт. Формально будете совершенно правы. А по сути — спорете не имеющую никакого отношения к делу оленуйню.
Пользуюсь 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>
такое может быть, например, если движок по умолчанию иннодб.
вероятно это от того, что в innodb не хранится статистика таблицы (например количество всех записей), в отличие от myisam
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.