SELECT cabinet.name, cabinet.last_name, cabinet.logo, cabinet.tel,
cabinet.icq, cabinet.info, cabinet.yers, cabinet.siti, cabinet.id,
user.dateregister, user.lastvisit, user.login
FROM cabinet,user
WHERE cabinet.id_user = '".$id_user."'
AND user.id = '".$id_user."'
Или вывести с начало все данные по одной таблице, потом отдать парочку на выполнению другому запросу т.е тут вытаскиваем данные только по одной таблице за раз.
Что лучше и быстрее будет работать из 2х вариантов?
1) несколько таблиц обработать за один подход.
2) одну таблицу за один подход.
Спустя 45 минут, 48 секунд (17.11.2010 - 20:31) inpost написал(а):
сложно сказать, лучше всего проверить самому. А ещё всё зависит от объема таблиц.
microtime(true); - сделай проверку так и так, узнаешь на практике. Хотя с другой стороны часто слышу на форуме, что при тяжелых запросах лучше разбивать по одному на таблицу.
microtime(true); - сделай проверку так и так, узнаешь на практике. Хотя с другой стороны часто слышу на форуме, что при тяжелых запросах лучше разбивать по одному на таблицу.
Спустя 1 минута, 44 секунды (17.11.2010 - 20:33) sergeiss написал(а):
Что-то мне мой внутренний голос подсказывает, что запрос очень неправильный. В результате его выполнения будет получено много данных, большая часть которых будет неверной.
Поэтому и ответить на вопросы ТС невозможно.
PS. Впрочем, щас подумаю... Может и не совсем так
Поэтому и ответить на вопросы ТС невозможно.
PS. Впрочем, щас подумаю... Может и не совсем так

Спустя 1 час, 15 минут, 12 секунд (17.11.2010 - 21:48) sharki написал(а):
выйдет строго столько сколько нужно)) и все применимо))
вывод из Mysql он еще вот это выдал
Showing rows 0 - 0 (1 total, Query took 0.0007 sec) (быстро или медленно?)
вывод из Mysql он еще вот это выдал
Showing rows 0 - 0 (1 total, Query took 0.0007 sec) (быстро или медленно?)
Спустя 5 часов, 23 минуты, 37 секунд (18.11.2010 - 03:12) FatCat написал(а):
Цитата (sharki @ 17.11.2010 - 20:46) |
Что лучше и быстрее будет работать из 2х вариантов? |
Третий:
SELECT c.name, c.last_name, c.logo, c.tel,c.icq, c.info, c.yers, c.siti, c.id,
u.dateregister, u.lastvisit, u.login
FROM cabinet c
LEFT JOIN user u ON(c.id_user=u.user.id)
WHERE u.id = '".$id_user."'
Подразумевается, что айдишник пользователя в обеих таблицах одинаков и проиндексирован.
Спустя 5 минут, 10 секунд (18.11.2010 - 03:17) Nikitian написал(а):
Если зависимость "1 к 1", то лучше inner join использовать, чтобы не ожидать пустые данные:
SELECT
c.name,
c.last_name,
c.logo,
c.tel,
c.icq,
c.info,
c.yers,
c.siti,
c.id,
u.dateregister,
u.lastvisit,
u.login
FROM
user u,
cabinet c
WHERE
c.id_user=u.user.id and
u.id = "$id_user"
Спустя 6 часов, 12 минут, 40 секунд (18.11.2010 - 09:30) linker написал(а):
Дело не в зависимости 1 к 1. INNER JOIN для других логических целей. Запрос совсем не тяжелый, расставь правильно индексы и забей.