Запрос с двух таблиц - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Fri, 19 Apr 2024 17:29:52 +0300 Чрезмерные индексы -зло, они увеличивают размер БД, к тому же при вставке обновлении и удалении происходит переиндексирование, на что тоже тратится время, да и не за чем индексы на полях которые не участвуют в выборке https://visavi.net/topics/42739/687247 Запрос с двух таблиц Вантуз-мен Sun, 10 Jan 2016 10:30:21 +0300 Сообщения https://visavi.net/topics/42739/687247 14. <strong>Vantuz</strong>, Летает как ракета)) Спасибо большое, выручили. А что если индекс везде использовать? Или почему он не идет по умолчанию. https://visavi.net/topics/42739/687246 Запрос с двух таблиц TERGUS5 Sun, 10 Jan 2016 10:20:54 +0300 Сообщения https://visavi.net/topics/42739/687246 Ну все напиши тот. Запрос что я дал постом выше и все должно работать быстрее https://visavi.net/topics/42739/687245 Запрос с двух таблиц Вантуз-мен Sun, 10 Jan 2016 10:09:22 +0300 Сообщения https://visavi.net/topics/42739/687245 12. <strong>Vantuz</strong>, Как его создать? Нужно в таблицу что-то заносить или только в запрос? Подскажи пожалуйста, первый раз с ним сталкиваюсь.<br> <br> <em><span style="font-size:x-small">Добавлено через 03:43 сек.</span></em><br> А всё нашел, структура напротив user_id добавить в индекс.<br> <br> <em><span style="font-size:x-small">Добавлено через 04:46 сек.</span></em><br> Добавил, и что дальше? https://visavi.net/topics/42739/687244 Запрос с двух таблиц TERGUS5 Sun, 10 Jan 2016 09:47:59 +0300 Сообщения https://visavi.net/topics/42739/687244 fr.user_id нужны индексы<br> и fr.friend_user_id тоже желательно<br> <br> <pre class="prettyprint">$sql = &quot;le.* FROM a_lenta as le LEFT JOIN a_subscribers AS fr ON le.user_id = fr.friend_user_id WHERE fr.user_id = &#039;&quot;. USER_ID .&quot;&#039; ORDER BY le.id DESC LIMIT $this-&gt;start, $this-&gt;per_page&quot;;</pre> https://visavi.net/topics/42739/687240 Запрос с двух таблиц Вантуз-мен Sun, 10 Jan 2016 00:31:18 +0300 Сообщения https://visavi.net/topics/42739/687240 CREATE TABLE IF NOT EXISTS `a_lenta` (<br> `id` int(11) NOT NULL AUTO_INCREMENT,<br> `user_id` int(11) NOT NULL,<br> `to_user` int(11) DEFAULT NULL,<br> `module` varchar(5000) DEFAULT NULL,<br> `time` int(11) NOT NULL,<br> `podaril` enum(&#039;yes&#039;,&#039;no&#039;) DEFAULT NULL,<br> PRIMARY KEY (`id`)<br> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;<br> <br> <em><span style="font-size:x-small">Добавлено через 00:39 сек.</span></em><br> CREATE TABLE IF NOT EXISTS `a_subscribers` (<br> `id` int(11) NOT NULL AUTO_INCREMENT,<br> `friend_user_id` int(11) NOT NULL,<br> `user_id` int(11) NOT NULL,<br> PRIMARY KEY (`id`)<br> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; https://visavi.net/topics/42739/687239 Запрос с двух таблиц TERGUS5 Sat, 09 Jan 2016 23:32:35 +0300 Сообщения https://visavi.net/topics/42739/687239 Автор ну покажи структуру 2 таблиц, я же говорю запрос верный, возможно нет индексов, если не используется sql_calc_found_rows убери из запроса https://visavi.net/topics/42739/687236 Запрос с двух таблиц Вантуз-мен Sat, 09 Jan 2016 21:50:01 +0300 Сообщения https://visavi.net/topics/42739/687236 Пишет<br> <br> SELECT SQL_CALC_FOUND_ROWS `le`.* FROM `a_lenta` AS `le` WHERE `le.user_id` IN (SELECT `friend_user_id` WHERE `fr.user_id` = &#039;1&#039;) ORDER BY `le`.`id` DESC LIMIT 0, 10<br> You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#039;WHERE `fr.user_id` = &#039;1&#039;) ORDER BY `le`.`id` DESC LIMIT 0, https://visavi.net/topics/42739/687229 Запрос с двух таблиц TERGUS5 Sat, 09 Jan 2016 19:19:10 +0300 Сообщения https://visavi.net/topics/42739/687229 А в чём проблема сделать типа SELECT `le`.* FROM `lenta` AS `le` WHERE `le.user_id` IN (SELECT `friend_user_id` WHERE `fr.user_id` = &#039;&quot;. USER_ID .&quot;&#039;) ORDER BY `le`.`id` DESC LIMIT $this-&gt;start, $this-&gt;per_page<br> <br> Или я не правильно понял? https://visavi.net/topics/42739/687179 Запрос с двух таблиц Иван Thu, 07 Jan 2016 18:44:27 +0300 Сообщения https://visavi.net/topics/42739/687179 EXPLAIN выводит только 2 непонятных запроса из таблицы https://visavi.net/topics/42739/687117 Запрос с двух таблиц TERGUS5 Tue, 05 Jan 2016 15:41:24 +0300 Сообщения https://visavi.net/topics/42739/687117 5. <strong>Vantuz</strong>, Что за &quot;структуру обеих таблиц ?&quot; Кинь пожалуйста готовый запрос. https://visavi.net/topics/42739/687116 Запрос с двух таблиц TERGUS5 Tue, 05 Jan 2016 15:23:37 +0300 Сообщения https://visavi.net/topics/42739/687116 3. <strong>TERGUS5</strong>, но мне кажется если уберешь SQL_CALC_FOUND_ROWS это должно решить проблему, так как SQL_CALC_FOUND_ROWS сперва просматривает всю таблицу и лишь затем делает выборку по лимитам https://visavi.net/topics/42739/687088 Запрос с двух таблиц Вантуз-мен Sun, 03 Jan 2016 11:20:54 +0300 Сообщения https://visavi.net/topics/42739/687088 Да все верно, сделай так и структуру обеих таблиц https://visavi.net/topics/42739/687087 Запрос с двух таблиц Вантуз-мен Sun, 03 Jan 2016 10:31:27 +0300 Сообщения https://visavi.net/topics/42739/687087 EXPLAIN SELECT le.* FROM ? https://visavi.net/topics/42739/687085 Запрос с двух таблиц TERGUS5 Sat, 02 Jan 2016 23:35:51 +0300 Сообщения https://visavi.net/topics/42739/687085 1. <strong>TERGUS5</strong>, запрос нормальный, но думаю SQL_CALC_FOUND_ROWS тебе у тебя не используется, если так, то убирай из запроса и давай сюда EXPLAIN https://visavi.net/topics/42739/687084 Запрос с двух таблиц Вантуз-мен Sat, 02 Jan 2016 23:32:43 +0300 Сообщения https://visavi.net/topics/42739/687084