Запрос с двух таблиц

Печать RSS
433

T
Автор
Пришелец
0
CREATE TABLE IF NOT EXISTS `a_lenta` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`to_user` int(11) DEFAULT NULL,
`module` varchar(5000) DEFAULT NULL,
`time` int(11) NOT NULL,
`podaril` enum('yes','no') DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

Добавлено через 00:39 сек.
CREATE TABLE IF NOT EXISTS `a_subscribers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`friend_user_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

Господин ПЖ
0
fr.user_id нужны индексы
и fr.friend_user_id тоже желательно

$sql = "le.* FROM a_lenta as le 
LEFT JOIN a_subscribers AS fr ON le.user_id = fr.friend_user_id 
WHERE fr.user_id = '". USER_ID ."' 
ORDER BY le.id DESC 
LIMIT $this->start, $this->per_page";
T
Автор
Пришелец
0
12. Vantuz, Как его создать? Нужно в таблицу что-то заносить или только в запрос? Подскажи пожалуйста, первый раз с ним сталкиваюсь.

Добавлено через 03:43 сек.
А всё нашел, структура напротив user_id добавить в индекс.

Добавлено через 04:46 сек.
Добавил, и что дальше?

Господин ПЖ
0
Ну все напиши тот. Запрос что я дал постом выше и все должно работать быстрее
T
Автор
Пришелец
0
14. Vantuz, Летает как ракета)) Спасибо большое, выручили. А что если индекс везде использовать? Или почему он не идет по умолчанию.

Господин ПЖ
0
Чрезмерные индексы -зло, они увеличивают размер БД, к тому же при вставке обновлении и удалении происходит переиндексирование, на что тоже тратится время, да и не за чем индексы на полях которые не участвуют в выборке
Изменил: Вантуз-мен (10.01.2016 / 10:31)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск