[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Индексы в таблице InnoDB
innodbb
Привет, у меня таблица одна имеет тип InnoDB, читал про индексы - но не совсем понял как правильней будет их поставить, помогите пожалуйста разобраться

CREATE TABLE IF NOT EXISTS `trr` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`idd` bigint(20) NOT NULL DEFAULT '0',
`c` varchar(255) NOT NULL DEFAULT '',
`e` varchar(255) NOT NULL DEFAULT '',
`name` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `idd` (`idd`),
KEY `name` (`name`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

//В эту таблицу всегда действует один запрос такой

$idd=rand(1,5000);//Данная переменная может быть от 1 до 5000
$name='';//Здесь идет имя пользователя - они прибовляются по мере их регистрации (допустим сейчас их 100000)

$sfd=mysql_query("SELECT * FROM `trr` WHERE `idd`='$idd' AND `name`='$name' LIMIT 1");
$sfd1=mysql_fetch_array($sfd);
$sfd2=$sfd1['id'];

if(isset($sfd2)){
echo $sfd2;
}

Не могу понять следующее - нужно ли мне индекс и для "`idd` bigint(20)" выставлять или нет.
На хабре полностью статью прочитал - понял то что Таблица разделила индекс `idd` и `name` еще в две подтаблицы - для быстрой выборки InnoDB, и если я делаю запрос с "WHERE `idd`='$idd' AND `name`='$name'" это походу бессмысленно (лучше чтоб был только один индекс `name` - так будет быстрее она думать?).
Последний вопрос - существует таблица допустим `ttttt` - в ней 30 значений, и 10 из этих значений являются индексами - (как я понял принцип работы InnoDB - "Таблица разделяется на 10 подтаблиц (так как в ней находится 10 индексов) - и при UPDATE или INSERT она делает аж 10 запросов в базу (тоесть заменяет либо создает в 10 подтаблиц строки)") - я правильно понимаю?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.