>> Подскажите знающие люди почему при использовании VIEW и также выполнение того же
>> запросто только без VIEW разница очень большая в скорости, особенно при
>> большом количестве записей
> Все зависит от того, что за вью, и есть ли для него
> подходящие индексы.Вот к примеру
CREATE TABLE IF NOT EXISTS `test`.`client` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`passport_id` INT(11) NOT NULL ,
`fio` VARCHAR(255) NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `passport_id` (`passport_id` ASC) ,
CONSTRAINT `table1_ibfk_1`
FOREIGN KEY (`passport_id` )
REFERENCES `hvo_main`.`table2` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci
CREATE TABLE IF NOT EXISTS `test`.`passport` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`passport_num` VARCHAR(20) NOT NULL ,
`vidan` VARCHAR(50) NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `passport_num` (`passport_num` ASC, `vidan` ASC) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci
Данных сразу говорю много
Делаю запрос
Если сделать из нижнего запроса view
SELECT client.fio, passport.passport_num FROM client LEFT JOIN passport ON passport.id = client.passport_id
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE client ALL NULL NULL NULL NULL 1 Using temporary; Using filesort
1 SIMPLE passport eq_ref PRIMARY PRIMARY 4 hvo_test.client.passport_id 1
Вот это простой пример в моем случаем объединяю 10 таблиц
Индексы все есть