PooH, я видел твой вариант. Но в такой форме нельзя сделать зависимости в подчиненных таблицах и выбрать данные по одному пользователю или по списку. Если же выбирать по всем пользователям, то твой вариант оптимальнее.
Кстати, id_who не является первичным ключем. Чтение таблиц неизбежно, т.к. нужны поля ballet и voting. Т.е. если сперва сгруппировать, то будет полное чтение таблицы. Если же группировать по равенству ключа, то чтение выборочное.
Попробую залить таблицы заново и проверить план.
Добавлено через 16 минут и 28 секунд:Первый запрос отсюда: 
https://forum.shelek.ru/index.php/topic,27290.msg262661.html#msg262661+----+-------------+------------+-------+---------------+---------+---------+------+------+----------+----------------------------------------------+
| id | select_type | table      | type  | possible_keys | key     | key_len | ref  | rows | filtered | Extra                                        |
+----+-------------+------------+-------+---------------+---------+---------+------+------+----------+----------------------------------------------+
|  1 | PRIMARY     | <derived2> | ALL   | NULL          | NULL    | NULL    | NULL |    4 |   100.00 |                                              |
|  2 | DERIVED     | users      | index | NULL          | PRIMARY | 4       | NULL |    4 |   100.00 | Using index; Using temporary; Using filesort |
|  2 | DERIVED     | videos     | ALL   | NULL          | NULL    | NULL    | NULL |   23 |   100.00 |                                              |
|  2 | DERIVED     | photos     | ALL   | NULL          | NULL    | NULL    | NULL |   10 |   100.00 |                                              |
|  2 | DERIVED     | articles   | ALL   | NULL          | NULL    | NULL    | NULL |    9 |   100.00 |                                              |
+----+-------------+------------+-------+---------------+---------+---------+------+------+----------+----------------------------------------------+
Запрос отсюда: 
https://forum.shelek.ru/index.php/topic,27290.msg262656.html#msg262656+----+-------------+------------+------+---------------+------+---------+------+------+----------+---------------------------------+
| id | select_type | table      | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra                           |
+----+-------------+------------+------+---------------+------+---------+------+------+----------+---------------------------------+
|  1 | PRIMARY     | u          | ALL  | NULL          | NULL | NULL    | NULL |    4 |   100.00 |                                 |
|  1 | PRIMARY     | <derived2> | ALL  | NULL          | NULL | NULL    | NULL |    2 |   100.00 |                                 |
|  1 | PRIMARY     | <derived3> | ALL  | NULL          | NULL | NULL    | NULL |    2 |   100.00 |                                 |
|  1 | PRIMARY     | <derived4> | ALL  | NULL          | NULL | NULL    | NULL |    2 |   100.00 |                                 |
|  4 | DERIVED     | t          | ALL  | NULL          | NULL | NULL    | NULL |    9 |   100.00 | Using temporary; Using filesort |
|  3 | DERIVED     | t          | ALL  | NULL          | NULL | NULL    | NULL |   10 |   100.00 | Using temporary; Using filesort |
|  2 | DERIVED     | t          | ALL  | NULL          | NULL | NULL    | NULL |   23 |   100.00 | Using temporary; Using filesort |
+----+-------------+------------+------+---------------+------+---------+------+------+----------+---------------------------------+
Добавляю в запросы выборку только "users.id = 1".
+----+-------------+------------+--------+---------------+---------+---------+------+------+----------+-------------+
| id | select_type | table      | type   | possible_keys | key     | key_len | ref  | rows | filtered | Extra       |
+----+-------------+------------+--------+---------------+---------+---------+------+------+----------+-------------+
|  1 | PRIMARY     | <derived2> | system | NULL          | NULL    | NULL    | NULL |    1 |   100.00 |             |
|  2 | DERIVED     | users      | const  | PRIMARY       | PRIMARY | 4       |      |    1 |   100.00 | Using index |
|  2 | DERIVED     | videos     | ALL    | NULL          | NULL    | NULL    | NULL |   23 |   100.00 |             |
|  2 | DERIVED     | photos     | ALL    | NULL          | NULL    | NULL    | NULL |   10 |   100.00 |             |
|  2 | DERIVED     | articles   | ALL    | NULL          | NULL    | NULL    | NULL |    9 |   100.00 |             |
+----+-------------+------------+--------+---------------+---------+---------+------+------+----------+-------------+
+----+-------------+------------+-------+---------------+---------+---------+-------+------+----------+---------------------------------+
| id | select_type | table      | type  | possible_keys | key     | key_len | ref   | rows | filtered | Extra                           |
+----+-------------+------------+-------+---------------+---------+---------+-------+------+----------+---------------------------------+
|  1 | PRIMARY     | u          | const | PRIMARY       | PRIMARY | 4       | const |    1 |   100.00 |                                 |
|  1 | PRIMARY     | <derived2> | ALL   | NULL          | NULL    | NULL    | NULL  |    2 |   100.00 |                                 |
|  1 | PRIMARY     | <derived3> | ALL   | NULL          | NULL    | NULL    | NULL  |    2 |   100.00 |                                 |
|  1 | PRIMARY     | <derived4> | ALL   | NULL          | NULL    | NULL    | NULL  |    2 |   100.00 |                                 |
|  4 | DERIVED     | t          | ALL   | NULL          | NULL    | NULL    | NULL  |    9 |   100.00 | Using temporary; Using filesort |
|  3 | DERIVED     | t          | ALL   | NULL          | NULL    | NULL    | NULL  |   10 |   100.00 | Using temporary; Using filesort |
|  2 | DERIVED     | t          | ALL   | NULL          | NULL    | NULL    | NULL  |   23 |   100.00 | Using temporary; Using filesort |
+----+-------------+------------+-------+---------------+---------+---------+-------+------+----------+---------------------------------+
Добавляю в подчиненные таблицы неуникальный ключ KEY (id_who).
+----+-------------+------------+--------+---------------+---------+---------+------+------+----------+-------------+
| id | select_type | table      | type   | possible_keys | key     | key_len | ref  | rows | filtered | Extra       |
+----+-------------+------------+--------+---------------+---------+---------+------+------+----------+-------------+
|  1 | PRIMARY     | <derived2> | system | NULL          | NULL    | NULL    | NULL |    1 |   100.00 |             |
|  2 | DERIVED     | users      | const  | PRIMARY       | PRIMARY | 4       |      |    1 |   100.00 | Using index |
|  2 | DERIVED     | videos     | ref    | id_who        | id_who  | 5       |      |   20 |   100.00 |             |
|  2 | DERIVED     | photos     | ref    | id_who        | id_who  | 5       |      |    5 |   100.00 |             |
|  2 | DERIVED     | articles   | ref    | id_who        | id_who  | 5       |      |    5 |   100.00 |             |
+----+-------------+------------+--------+---------------+---------+---------+------+------+----------+-------------+
+----+-------------+------------+-------+---------------+---------+---------+-------+------+----------+---------------------------------+
| id | select_type | table      | type  | possible_keys | key     | key_len | ref   | rows | filtered | Extra                           |
+----+-------------+------------+-------+---------------+---------+---------+-------+------+----------+---------------------------------+
|  1 | PRIMARY     | u          | const | PRIMARY       | PRIMARY | 4       | const |    1 |   100.00 |                                 |
|  1 | PRIMARY     | <derived2> | ALL   | NULL          | NULL    | NULL    | NULL  |    2 |   100.00 |                                 |
|  1 | PRIMARY     | <derived3> | ALL   | NULL          | NULL    | NULL    | NULL  |    2 |   100.00 |                                 |
|  1 | PRIMARY     | <derived4> | ALL   | NULL          | NULL    | NULL    | NULL  |    2 |   100.00 |                                 |
|  4 | DERIVED     | t          | ALL   | NULL          | NULL    | NULL    | NULL  |    9 |   100.00 | Using temporary; Using filesort |
|  3 | DERIVED     | t          | ALL   | NULL          | NULL    | NULL    | NULL  |   10 |   100.00 | Using temporary; Using filesort |
|  2 | DERIVED     | t          | ALL   | NULL          | NULL    | NULL    | NULL  |   23 |   100.00 | Using temporary; Using filesort |
+----+-------------+------------+-------+---------------+---------+---------+-------+------+----------+---------------------------------+
Вот где-то так я говорил: твой запрос оптимальнее при полной выборке (причем, индексы в подчиненных таблицах ему не нужны), а мой - на адресных выборках.
Добавлено через 4 минуты и 22 секунды:PooH, с точки зрения оракла все будет зависить от статистики по объектам и наличие необходимых объектов. Думаю в мускуле так же.
Макс, в MySQL статистика мало что определяет, хотя и используется оптимизатором. Чаще наоборот приходится бороться с оптимизатором хитрыми способами (например, 
выборка GeoIP).