Индексы MySQL: фактический результат

СостояниеIS_VISIBLEПервые три заказа
После CREATE ... INVISIBLENO121, 124, 127
После ALTER ... VISIBLEYES121, 124, 127

Наблюдавшиеся планы и метаданные

Это данные данного запуска. Стоимость, оценки, способ доступа и время могут измениться. possible_keys означает кандидатов, key — выбранный индекс. Using index и Using index condition имеют разный смысл. Результат запроса проверяется отдельно от выбора оптимизатора.

План при INVISIBLE

[
    {
        "id": 1,
        "select_type": "SIMPLE",
        "table": "mysql114_index_4d7d1acf8123d947_orders",
        "partitions": null,
        "type": "index",
        "possible_keys": null,
        "key": "PRIMARY",
        "key_len": "4",
        "ref": null,
        "rows": 3,
        "filtered": 1.6666667461395264,
        "Extra": "Using where"
    }
]

План при VISIBLE

[
    {
        "id": 1,
        "select_type": "SIMPLE",
        "table": "mysql114_index_4d7d1acf8123d947_orders",
        "partitions": null,
        "type": "ref",
        "possible_keys": "candidate_queue",
        "key": "candidate_queue",
        "key_len": "54",
        "ref": "const,const",
        "rows": 20,
        "filtered": 100,
        "Extra": null
    }
]

Метаданные до

[
    {
        "COLUMN_NAME": "tenant_id",
        "SEQ_IN_INDEX": 1,
        "COLLATION": "A",
        "IS_VISIBLE": "NO"
    },
    {
        "COLUMN_NAME": "status",
        "SEQ_IN_INDEX": 2,
        "COLLATION": "A",
        "IS_VISIBLE": "NO"
    },
    {
        "COLUMN_NAME": "id",
        "SEQ_IN_INDEX": 3,
        "COLLATION": "A",
        "IS_VISIBLE": "NO"
    }
]

Метаданные после

[
    {
        "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"
    }
]

Текущий optimizer_switch

index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,duplicateweedout=on,subquery_materialization_cost_based=on,use_index_extensions=on,condition_fanout_filter=on,derived_merge=on,use_invisible_indexes=off,skip_scan=on,hash_join=on,subquery_to_derived=off,prefer_ordering_index=on,hypergraph_optimizer=off,derived_condition_pushdown=on,hash_set_operations=on

HTML создан PHP CLI и локальным MySQL. Собственные учебные таблицы удалены после сценария. Это сохранённый отчёт, а не подключение к базе сайта.