Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Выбирается значение колонки, на которой первичный ключ (пусть имя колонки - id). В WHERE используются другие ключи, не содержащий в своем составе колонки, на которой первичный.
Как я понимаю,
1. значение id при этом должно браться с диска
2. но оно не берется, потому что InnoDB по-особенному относится к первичным ключам
Так ли это?
Неактивен
В Innodb данные хранятся вместе с первичным ключем. То есть значение id и все данные хранятся в одном месте. Все это упорядочено в виде дерева по первичному ключу. Если выборка по другому ключу - то это отдельное дерево, которое ссылается на основное.
В Innodb key_buffer не работает, а buffer_pool одинаково относится к ключам и к данным.
Неактивен
Понятно. Значит, если таблицу переделать в MyISAM, то от этого тормоза не появятся? (т.к. в любом случае нужно лезть в данные, поскольку ключ другой)
Неактивен
Все зависит от характера обращения и размера таблицы. Innodb может в buffer_pool в памяти все запомнить, а MyISAM всегда будет обращаться к диску
Неактивен
Страниц: 1