SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 31.10.2009 01:03:30

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 848

Колонка с первичным ключом в таблицах InnoDB

Выбирается значение колонки, на которой первичный ключ (пусть имя колонки - id). В WHERE используются другие ключи, не содержащий в своем составе колонки, на которой первичный.
Как я понимаю,
1. значение id при этом должно браться с диска
2. но оно не берется, потому что InnoDB по-особенному относится к первичным ключам
Так ли это?

Неактивен

 

#2 31.10.2009 01:11:23

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Колонка с первичным ключом в таблицах InnoDB

В Innodb данные хранятся вместе с первичным ключем. То есть значение id и все данные хранятся в одном месте. Все это упорядочено в виде дерева по первичному ключу. Если выборка по другому ключу - то это отдельное дерево, которое ссылается на основное.

В Innodb key_buffer не работает, а buffer_pool одинаково относится к ключам и к данным.

Неактивен

 

#3 31.10.2009 01:35:53

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 848

Re: Колонка с первичным ключом в таблицах InnoDB

Понятно. Значит, если таблицу переделать в MyISAM, то от этого тормоза не появятся? (т.к. в любом случае нужно лезть в данные, поскольку ключ другой)

Неактивен

 

#4 31.10.2009 01:37:24

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Колонка с первичным ключом в таблицах InnoDB

Все зависит от характера обращения и размера таблицы. Innodb может в buffer_pool в памяти все запомнить, а MyISAM всегда будет обращаться к диску

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson