Теперь пакет purrr
делает этот процесс очень простым:
library(purrr)
before %>% transpose()
## $x
## $x$a
## a x
## 1 1 2
##
## $x$b
## b w
## 1 5 6
##
##
## $y
## $y$a
## a y
## 1 3 4
##
## $y$b
## b z
## 1 7 8
Когда индекс (составной или нет) используется для «сортировки», MySQL считывает данные по порядку и не выполняет сортировку вообще. Это невозможно с несколькими индексами.
Возможно упорядоченное чтение по 1-му индексу, а затем сортировка файлов, но вряд ли это будет быстрее, поэтому MySQL этого не делает.
Если вам действительно нужно это сделать, вы можете использовать такой подзапрос, как этот:
SELECT ...
FROM (
SELECT primary_key
FROM table1
ORDER BY field1
LIMIT 15
) tmp
JOIN table1 t ON t.primary_key = tmp.primary_key
ORDER BY field1, field2
Это может быть полезно, когда у вас есть LIMIT
и по какой-то причине вы не можете добавить составной индекс .