Вам необходимо создать составной индекс для tableA
:
CREATE INDEX ix_tablea_t1id_t2id ON table_A (t1id, t2id)
Индексы в MySQL
считаются частью таблицы: они обновляются автоматически и используются автоматически всякий раз, когда оптимизатор решает, что их стоит использовать.
MySQL
не использует термин index table
.
Этот термин используется Oracle
для обозначения того, что другие базы данных называют CLUSTERED INDEX
: своего рода таблица, в которой сами записи расположены в соответствии со значением столбца (или набора столбцов).
В MySQL
:
При использовании хранилища MyISAM
индекс создается как отдельный файл с расширением .MYI
.
Содержимое этого файла представляет собой B-Tree
, каждый лист которого содержит ключ индекса и указатель на смещение в файле .MYD
, который содержит данные.
Размер указателя определяется настройкой сервера, называемой myisam_data_pointer_size
, которая может варьироваться от 2
до 7
байтов и по умолчанию равна 6
, начиная с MySQL 5.0.6
.
Это позволяет создавать MyISAM
таблиц до 2 ^ (8 * 6) bytes
= 256 TB
В InnoDB
все таблицы упорядочены по PRIMARY KEY
, он не поддерживает таблицы, организованные в куче.
Таким образом, каждый индекс фактически является простой таблицей InnoDB
, состоящей из одной PRIMARY KEY
из N+M
записей: N
записей, являющихся индексированными значениями, и M
записей, являющихся PRIMARY KEY
основной записи таблицы, которая содержит проиндексированные данные.