Структура таблиц
--
-- Структура таблицы `dec_group`
--
CREATE TABLE dec_group (
id int(6) unsigned NOT NULL auto_increment,
`name` varchar(150) collate utf8_bin default NULL,
id_parent int(6) unsigned default NULL,
PRIMARY KEY (id),
KEY `name` (`name`),
KEY id_parent (id_parent)
)
-- --------------------------------------------------------
--
-- Структура таблицы `declaration`
--
CREATE TABLE declaration (
id int(6) unsigned NOT NULL auto_increment,
title varchar(180) collate utf8_bin default NULL,
`data` date default NULL,
tex text collate utf8_bin NOT NULL,
user_id int(6) unsigned default NULL,
group_id int(6) unsigned default NULL,
PRIMARY KEY (id),
KEY user_id (user_id),
KEY group_id (group_id),
FULLTEXT KEY tex (tex)
)
-- --------------------------------------------------------
--
-- Структура таблицы `users`
--
CREATE TABLE users (
id bigint(20) NOT NULL auto_increment,
login varchar(40) collate utf8_bin default NULL,
email varchar(255) collate utf8_bin NOT NULL,
pass varchar(255) collate utf8_bin NOT NULL,
question int(11) default NULL,
ansq varchar(255) collate utf8_bin NOT NULL,
date_reg date NOT NULL,
last_d datetime NOT NULL,
PRIMARY KEY (id),
KEY login (login)
)
Сам запрос
select `declaration`.id, `declaration`.title, `declaration`.data, `declaration`.tex, `declaration`.user_id, `users`.login, `declaration`.group_id from `declaration` LEFT JOIN `users` ON `users`.id = `declaration`.user_id LEFT JOIN `dec_group` ON `dec_group`.id = `declaration`.group_id where `dec_group`.id in (61, 73, 62, 78, 199, 202, 201, 76, 75, 200, 198, 203, 65, 63, 66, 64, 70, 72, 68, 69) limit 0,5
Дело в том, что при наличии в трёх таблицах записей:
declaration: 200000 зап.
dec_group: 210 зап.
users: 2000 зап.
Запрос выполняется 0.1 сек. Можно быстрее?