Автор оригинала: Falc
REMO
Покажи EXPLAIN
+-------+--------+-----------------------+---------+---------+----------+------+---------------------------------+
| table | type | possible_keys | key | key_len | ref | rows | Extra |
+-------+--------+-----------------------+---------+---------+----------+------+---------------------------------+
| t4 | ALL | NULL | NULL | NULL | NULL | 20 | Using temporary; Using filesort |
| t3 | ref | id, id | id | 1 | t4.id | 47 | |
| t2 | ALL | NULL | NULL | NULL | NULL | 152 | |
| t1 | eq_ref | PRIMARY,priznak,print | PRIMARY | 2 | t3.id | 1 | Using where |
+-------+--------+-----------------------+---------+---------+----------+------+---------------------------------+
4 rows in set (0.01 sec)
SELECT *
FROM products
WHERE print = 1 AND priznak = 1
ORDER BY RAND(number)
SELECT *
FROM place t1, products_properties t2, properties t3
WHERE t1.place_id = $row[place_id] AND t2.id = $row[id] AND t3.uslid = t2.uslid
Что то я не понял? За умными словами и словосочетаниями, я потерял суть...Автор оригинала: Larson
Я же сказал 50
Ну и что мы тут видим?
На счет скорости спорить не буду. Это разговор отдельный.
Я все про твой "вес". Твой запрос, который в цикле, это выборка данных из первого запроса. А т.к. ты рассматриваешь весь набор идентификаторов, то соответсвенно ты выбираешь все записи из первого, но по чуть-чуть.
Другими словами, ты в обоих случаях выбираешь все записи из одной таблицы, с одинаковыми условиями в том и другом варианте.
Млин, тебе в философы надо. Сколько не накопай, все равно больше мешка не унесешьАвтор оригинала: Larson
Ах вот про какие ты лишние данные.Но ведь у нас в каждой строке (если мы будем один запрос делать) висеть текст из 300 символов. А строк будет столько сколько свойств у товара и умножить на количество товаров.
А если 50 запросов, то текст в 300 символов будет всего лишь в 50 строках, по количеству товара.
Ну наконец то поняли друг другаАвтор оригинала: Larson
Ах вот про какие ты лишние данные.
Ну если тебя беспокоят эти 300 символов, то это тоже самое, что 300 коп. vs 300$.
Выбирай все одним селектом, но без этих 300 символов, а эти 300 симлов выберешь отдельно одним запросом для всех товаров сразу.
300 символов это у каждого товара... Придется делать запрос на все 50 товаров, затем засовывать эти описания в ассоциативный массив. Как Falc предложилАвтор оригинала: Larson
Через какой такой массив?
Я тоже так думалАвтор оригинала: Larson
Да при чем здесь эти 300 символов.
Зачем их все сразу запихивать в массив?
Есть два результата, полученных из БД. В одном содержаться описания товаров (или что-там эти 300 символов) в другом все свойства товаров. Спокойненько, не спеша идем по свойствам, просматриваем каждое, а как только перешли на следующий товар - из первого достали следующее описание.
Столбцов в результате запроса около 20. Не уникальные данные (повторяющиеся) идут в строках.Автор оригинала: MagicGTS
А в ситуации с одним запросом у тебя возвращается только один столбец данных (или несколько, но с простой связью между собой)? Если да, то можно сказать базе выдавать только уникальные данные с помощью SELECT DISTINCT ......