| Заказ | Покупатель | Сумма, коп. |
|---|---|---|
| 121 | Борис | 103 |
| 124 | Дина | 403 |
| 127 | Вера | 703 |
| 130 | Анна | 1003 |
Это данные данного запуска. Стоимость, оценки, способ доступа и время могут измениться. possible_keys означает кандидатов, key — выбранный индекс. Using index и Using index condition имеют разный смысл. Результат запроса проверяется отдельно от выбора оптимизатора.
-> Limit: 4 row(s) (cost=9.29 rows=4)
-> Nested loop inner join (cost=9.29 rows=20)
-> Covering index lookup on o using report_page (tenant_id='3', status='paid') (cost=2.29 rows=20)
-> Single-row index lookup on c using PRIMARY (id=o.customer_id) (cost=0.255 rows=1)
-> Limit: 4 row(s) (cost=9.29 rows=4) (actual time=0.0213..0.0241 rows=4 loops=1)
-> Nested loop inner join (cost=9.29 rows=20) (actual time=0.0209..0.0237 rows=4 loops=1)
-> Covering index lookup on o using report_page (tenant_id='3', status='paid') (cost=2.29 rows=20) (actual time=0.0088..0.0094 rows=4 loops=1)
-> Single-row index lookup on c using PRIMARY (id=o.customer_id) (cost=0.255 rows=1) (actual time=875e-6..875e-6 rows=1 loops=4)
[
{
"COLUMN_NAME": "tenant_id",
"SEQ_IN_INDEX": 1,
"COLLATION": "A",
"IS_VISIBLE": "YES"
},
{
"COLUMN_NAME": "status",
"SEQ_IN_INDEX": 2,
"COLLATION": "A",
"IS_VISIBLE": "YES"
},
{
"COLUMN_NAME": "id",
"SEQ_IN_INDEX": 3,
"COLLATION": "A",
"IS_VISIBLE": "YES"
},
{
"COLUMN_NAME": "customer_id",
"SEQ_IN_INDEX": 4,
"COLLATION": "A",
"IS_VISIBLE": "YES"
},
{
"COLUMN_NAME": "amount_cents",
"SEQ_IN_INDEX": 5,
"COLLATION": "A",
"IS_VISIBLE": "YES"
}
]Каждый отступ — оператор плана. rows до actual — оценка; actual rows — строки, выданные этим оператором за проход; loops — число его проходов. Не складывайте строки разных уровней как уникальные заказы.
HTML создан PHP CLI и локальным MySQL. Собственные учебные таблицы удалены после сценария. Это сохранённый отчёт, а не подключение к базе сайта.