powered by simpleCommunicator - 2.0.31     © 2024 Programmizd 02
Форумы / MySQL [закрыт для гостей] / Господа базоёбы, скок сюды
25 сообщений из 242, страница 3 из 10
Господа базоёбы, скок сюды
    #58692
Tammy Jo Saint Cloud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блядь, просто йобаная классика

Именно для таких долбойобов я пишу статьи, но долбойобы, разумеется, хуй их читают
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58693
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  07.06.2022, 21:37
[игнорируется]
basename [игнорируется] 

Чего там прикладывать?
Лефт везде убери, раз тебе атачменты нужны.
С лефт джойном.
Ты берёшь, получаешь все посты пользователя и пришпандориваешь аттачи к тем постам, где они есть, вот тебе и дубли.
Туда же ещё и темы пришпандориваешь так же.

Смысла лефт джойна тем и постов нет, потому что темя с постами связаны по любому. А так как тебе надо только посты с аттачами, то и смысла лефт джойна с аттачами тоже нет.
ЗЫ но я не так лефты пишу, раз он левый то присобачиваемую таблицу пишу слева от знака =. Типа эстет.
Почему нет? К таблице с постами присоединяем аттачи, потом таблицу с топиками. Из аттачей берём имя аттача, из топиков - id топика и форумный.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58694
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tammy Jo Saint Cloud  07.06.2022, 21:41
[игнорируется]
блядь, просто йобаная классика

Именно для таких долбойобов я пишу статьи, но долбойобы, разумеется, хуй их читают
Где можно прочитать твою статью? Я долбоеб. С sql не связан.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58697
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basename  07.06.2022, 21:41
[игнорируется]
Почему нет?
Потому что лефт покажет записи из постов даже те, у которых нет аттачей.
Зачем тебе они, если ты аттачи ищешь?
И зачем тебе показывать посты, которые не привязаны к топикам (с лефтом именно так ты и делаешь), если это как минимум странно? Как там планы в таком случае это майскуль построит ХЗ.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58699
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basename [игнорируется] 

И я не уверен, что твоё условие attach.name is not null имеет смысл, как я понимаю у деды любой аттач имеет имя.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58701
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  07.06.2022, 21:44
[игнорируется]
basename  07.06.2022, 21:41
[игнорируется]
Почему нет?
Потому что лефт покажет записи из постов даже те, у которых нет аттачей.
Зачем тебе они, если ты аттачи ищешь?
И зачем тебе показывать посты, которые не привязаны к топикам (с лефтом именно так ты и делаешь), если это как минимум странно? Как там планы в таком случае это майскуль построит ХЗ.
А… понял. Тупой сука. Он же все равно сканит таблицу полностью, потом селект делает. Так?

Он все присоединил вначале, потом просто отобразил, что попросили.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58703
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  07.06.2022, 21:45
[игнорируется]
basename [игнорируется] 

И я не уверен, что твоё условие attach.name is not null имеет смысл, как я понимаю у деды любой аттач имеет имя.
Без него просто показывает в столбце - null.

Короче, примеры надо показывать.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58705
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basename  07.06.2022, 21:46
[игнорируется]
Он же все равно сканит таблицу полностью, потом селект делает. Так?
ХЗ.
По уму может выбрать посты по юзер_ид, а потом уже к ним присоединить всё остальное.
В любом случае, если ты ищешь аттачи, то лефт убирай.
Ну я я бы всё равно начал с аттачей,как бы привык начинать оттуда, что ищу.
Что-то вроде
Код: SQL
1.
2.
3.
4.
select v1_post.id, v1_post.user_id, v1_post.author, v1_topic.forum_id, v1_post.topic_id, v1_attachment.name
from v1_attachment
join v1_post on v1_post.id = v1_attachment.post_id and v1_post.user_id = '173'
join v1_topic on v1_topic.id = v1_post.topic_id;
...
Изменено: 07.06.2022, 21:52 - Горбатый ёж
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58707
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basename  07.06.2022, 21:49
[игнорируется]
Горбатый ёж  07.06.2022, 21:45
[игнорируется]
basename [игнорируется] 

И я не уверен, что твоё условие attach.name is not null имеет смысл, как я понимаю у деды любой аттач имеет имя.
Без него просто показывает в столбце - null.

Короче, примеры надо показывать.
О как...
Значит я ошибаюсь.

Потому что лефт джойн используется.
...
Изменено: 07.06.2022, 21:52 - Горбатый ёж
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58725
cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Гесты и игнорируемые идут по CSS
Горбатый ёж  07.06.2022, 21:30
[игнорируется]
cat2  07.06.2022, 19:41
[игнорируется]
left join не нужен.
Просто JOIN.

И тогда не нужно будет и условие and v1_attachment.name is not null;. Такие записи сами отсекутся при выполнении on v1_post.id = v1_attachment.post_id
Чегой?...
Это с какого суахили?
Я понимаю, что в данном случае имя у атачмента вряд ли будет null, но как оно связано с джойном и лефт джойном, мне понять не суждено.
С left outer join будут выбраны все посты атора, в том числе и те, где нет аттачментов. С join - только те, у которых есть аттачменты
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58726
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Горбатый ёж  07.06.2022, 21:37
[игнорируется]
basename [игнорируется] 

Чего там прикладывать?
Лефт везде убери, раз тебе атачменты нужны.
С лефт джойном.
Ты берёшь, получаешь все посты пользователя и пришпандориваешь аттачи к тем постам, где они есть, вот тебе и дубли.
Туда же ещё и темы пришпандориваешь так же.

Смысла лефт джойна тем и постов нет, потому что темя с постами связаны по любому. А так как тебе надо только посты с аттачами, то и смысла лефт джойна с аттачами тоже нет.
ЗЫ но я не так лефты пишу, раз он левый то присобачиваемую таблицу пишу слева от знака =. Типа эстет.
Теоретег детектед. Таблица постов самая здоровая (овердохуя записей относительно остальных таблиц), в случае иннер джоина условия соединения равносильны условиям в предложении where и оптимизатор может снача на сотни тысяч записей в таблице постов начать джоинить другие таблицы, что может потребовать выделения значительного объема ОЗУ и сброса результата в tempdb, что не есть продуктивно.
У Бази в первоначальном запросе на таблицу постов накладывается ограничение по юзер_ид, что в случае индекса по юзер_ид инклуде (пост_ид, топик_ид) сведётся к поиску по индексу для выделения постов автора и джоину по относительно небольшому числу постов конкретного юзера. Правда у него тогда в where мешает условие на is not null для вложения.

З.ы. нет планов - нет аналитики.
З.з.ы. вышеописанное применительно к ms sql, чего там с оптимизатором mysql - я хз
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58728
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Горбатый ёж  07.06.2022, 21:44
[игнорируется]
Потому что лефт покажет записи из постов даже те, у которых нет аттачей.
У Бази условие в where на is not null для поля таблицы из left join
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58729
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Горбатый ёж  07.06.2022, 21:45
[игнорируется]
basename [игнорируется] 

И я не уверен, что твоё условие attach.name is not null имеет смысл, как я понимаю у деды любой аттач имеет имя.
Условие в предложении where, а не в on соединения [:ireful]
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58731
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
basename  07.06.2022, 21:46
[игнорируется]
Горбатый ёж  07.06.2022, 21:44
[игнорируется]
basename  07.06.2022, 21:41
[игнорируется]
Почему нет?
Потому что лефт покажет записи из постов даже те, у которых нет аттачей.
Зачем тебе они, если ты аттачи ищешь?
И зачем тебе показывать посты, которые не привязаны к топикам (с лефтом именно так ты и делаешь), если это как минимум странно? Как там планы в таком случае это майскуль построит ХЗ.
А… понял. Тупой сука. Он же все равно сканит таблицу полностью, потом селект делает. Так?

Он все присоединил вначале, потом просто отобразил, что попросили.
Йожег попутал, у тебя is not null в where, а не в on
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58746
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaNik  07.06.2022, 22:05
[игнорируется]
basename  07.06.2022, 21:46
[игнорируется]
Горбатый ёж  07.06.2022, 21:44
[игнорируется]
basename  07.06.2022, 21:41
[игнорируется]
Почему нет?
Потому что лефт покажет записи из постов даже те, у которых нет аттачей.
Зачем тебе они, если ты аттачи ищешь?
И зачем тебе показывать посты, которые не привязаны к топикам (с лефтом именно так ты и делаешь), если это как минимум странно? Как там планы в таком случае это майскуль построит ХЗ.
А… понял. Тупой сука. Он же все равно сканит таблицу полностью, потом селект делает. Так?

Он все присоединил вначале, потом просто отобразил, что попросили.
Йожег попутал, у тебя is not null в where, а не в on
Дык он с нулями выводил, я это и вставил. Правильно или нет - я хз. У вас спрашиваю.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58753
cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Гесты и игнорируемые идут по CSS
basename  07.06.2022, 22:12
[игнорируется]
PaNik  07.06.2022, 22:05
[игнорируется]
basename  07.06.2022, 21:46
[игнорируется]
Горбатый ёж  07.06.2022, 21:44
[игнорируется]
basename  07.06.2022, 21:41
[игнорируется]
...
Потому что лефт покажет записи из постов даже те, у которых нет аттачей.
Зачем тебе они, если ты аттачи ищешь?
И зачем тебе показывать посты, которые не привязаны к топикам (с лефтом именно так ты и делаешь), если это как минимум странно? Как там планы в таком случае это майскуль построит ХЗ.
А… понял. Тупой сука. Он же все равно сканит таблицу полностью, потом селект делает. Так?

Он все присоединил вначале, потом просто отобразил, что попросили.
Йожег попутал, у тебя is not null в where, а не в on
Дык он с нулями выводил, я это и вставил. Правильно или нет - я хз. У вас спрашиваю.
Завязывай спрашивать, делай что советуют
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58757
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
basename  07.06.2022, 22:12
[игнорируется]
PaNik  07.06.2022, 22:05
[игнорируется]
basename  07.06.2022, 21:46
[игнорируется]
Горбатый ёж  07.06.2022, 21:44
[игнорируется]
basename  07.06.2022, 21:41
[игнорируется]
...
Потому что лефт покажет записи из постов даже те, у которых нет аттачей.
Зачем тебе они, если ты аттачи ищешь?
И зачем тебе показывать посты, которые не привязаны к топикам (с лефтом именно так ты и делаешь), если это как минимум странно? Как там планы в таком случае это майскуль построит ХЗ.
А… понял. Тупой сука. Он же все равно сканит таблицу полностью, потом селект делает. Так?

Он все присоединил вначале, потом просто отобразил, что попросили.
Йожег попутал, у тебя is not null в where, а не в on
Дык он с нулями выводил, я это и вставил. Правильно или нет - я хз. У вас спрашиваю.
С точки зрения запроса (того, что тебе нужно получить) - правильно.
Но открывает простор для действий оптимизатора, может пойти по неоптимальному пути (мой длинный пост выше) и отработать заметно медленнее с привлечением заметно большего числа ресурсов.

З.Ы. Нужны планы.
З.З.Ы. планы имеют тенденцию становиться неактуальными с увеличением числа записей.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58775
Tammy Jo Saint Cloud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basename  07.06.2022, 21:42
[игнорируется]
Tammy Jo Saint Cloud  07.06.2022, 21:41
[игнорируется]
блядь, просто йобаная классика

Именно для таких долбойобов я пишу статьи, но долбойобы, разумеется, хуй их читают
Где можно прочитать твою статью? Я долбоеб. С sql не связан.
на профильных сайтах в интернетах (С)
Там моя подпись, так чот ищи сам

но в двух словах
классическая ошибка - это фильтрация по "правой" таблице при лефт джойне, которая превращает аутер в иннер. если изначально и нужен был иннер, то в нормальных серверах рояли особо не играет. Если оптимизатор говно - рояль может быть

второй классический случай - использование дистинкта при неправильной работе с мастер-слейв
вместо того чтобы юзать exists (который на самом деле нужен), некто юзает джойн со слейвом, получает мультипликацию хедера, пугается и пиздячит туда дистинкт

На самом деле для разовых запросов - практически похуй как ты что там пишешь. Ну поебётся сервер минуту вместо того чтобы выполнить запрос за полсекунды - всем похуй, запрос разовый, лишь бы результат был правильный

но если запрос выполняется постоянно и многократно - то тут конечно приходтся смотреть как что писать
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58778
Tammy Jo Saint Cloud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaNik  07.06.2022, 22:01
[игнорируется]
в случае иннер джоина условия соединения равносильны условиям в предложении where и оптимизатор может снача на сотни тысяч записей в таблице постов начать джоинить другие таблицы, что может потребовать выделения значительного объема ОЗУ и сброса результата в tempdb, что не есть продуктивно.
штоблядьзанахуй??????

Простите, был напуган.

это бред, сорян. По крайней мере для скуля (судя по темпдб)
Для мелких серверов с хуевым оптмизатором - может быть правдой.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58780
Tammy Jo Saint Cloud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaNik  07.06.2022, 22:01
[игнорируется]
З.з.ы. вышеописанное применительно к ms sql, чего там с оптимизатором mysql - я хз
ага, таки скуль
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58781
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
PaNik  07.06.2022, 22:17
[игнорируется]
basename  07.06.2022, 22:12
[игнорируется]
PaNik  07.06.2022, 22:05
[игнорируется]
basename  07.06.2022, 21:46
[игнорируется]
Горбатый ёж  07.06.2022, 21:44
[игнорируется]
...
А… понял. Тупой сука. Он же все равно сканит таблицу полностью, потом селект делает. Так?

Он все присоединил вначале, потом просто отобразил, что попросили.
Йожег попутал, у тебя is not null в where, а не в on
Дык он с нулями выводил, я это и вставил. Правильно или нет - я хз. У вас спрашиваю.
С точки зрения запроса (того, что тебе нужно получить) - правильно.
Но открывает простор для действий оптимизатора, может пойти по неоптимальному пути (мой длинный пост выше) и отработать заметно медленнее с привлечением заметно большего числа ресурсов.

З.Ы. Нужны планы.
З.З.Ы. планы имеют тенденцию становиться неактуальными с увеличением числа записей.
58512
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58784
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cat2  07.06.2022, 22:15
[игнорируется]
basename  07.06.2022, 22:12
[игнорируется]
PaNik  07.06.2022, 22:05
[игнорируется]
basename  07.06.2022, 21:46
[игнорируется]
Горбатый ёж  07.06.2022, 21:44
[игнорируется]
...
А… понял. Тупой сука. Он же все равно сканит таблицу полностью, потом селект делает. Так?

Он все присоединил вначале, потом просто отобразил, что попросили.
Йожег попутал, у тебя is not null в where, а не в on
Дык он с нулями выводил, я это и вставил. Правильно или нет - я хз. У вас спрашиваю.
Завязывай спрашивать, делай что советуют
Ок. Подробнее обрисую, подробнее рассмотрим. Я просто запрос сделал согласно доке mysql.
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58785
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
basename  07.06.2022, 22:29
[игнорируется]
cat2  07.06.2022, 22:15
[игнорируется]
basename  07.06.2022, 22:12
[игнорируется]
PaNik  07.06.2022, 22:05
[игнорируется]
basename  07.06.2022, 21:46
[игнорируется]
...
Йожег попутал, у тебя is not null в where, а не в on
Дык он с нулями выводил, я это и вставил. Правильно или нет - я хз. У вас спрашиваю.
Завязывай спрашивать, делай что советуют
Ок. Подробнее обрисую, подробнее рассмотрим. Я просто запрос сделал согласно доке mysql.
С точки зрения поставленной задачи (выбрать все аттачменты юзера) запрос в стартовом посте корректен
...
Изменено: 07.06.2022, 22:31 - PaNik
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58786
Tammy Jo Saint Cloud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basename  07.06.2022, 19:34
[игнорируется]
вначале у меня какие-то дубли получались
какие дубли получались? когда у тебя на один пост было несколько аттачей?

так вроде и задача была " нужно выводить список вложений" - значит ты мог получить в одной теме несколько постов - если в посте было несколько аттачей
...
Рейтинг: 0 / 0
Господа базоёбы, скок сюды
    #58789
папа акуз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tammy Jo Saint Cloud  07.06.2022, 22:25
[игнорируется]
basename  07.06.2022, 21:42
[игнорируется]
Tammy Jo Saint Cloud  07.06.2022, 21:41
[игнорируется]
блядь, просто йобаная классика

Именно для таких долбойобов я пишу статьи, но долбойобы, разумеется, хуй их читают
Где можно прочитать твою статью? Я долбоеб. С sql не связан.
на профильных сайтах в интернетах (С)
Там моя подпись, так чот ищи сам

но в двух словах
классическая ошибка - это фильтрация по "правой" таблице при лефт джойне, которая превращает аутер в иннер. если изначально и нужен был иннер, то в нормальных серверах рояли особо не играет. Если оптимизатор говно - рояль может быть

второй классический случай - использование дистинкта при неправильной работе с мастер-слейв
вместо того чтобы юзать exists (который на самом деле нужен), некто юзает джойн со слейвом, получает мультипликацию хедера, пугается и пиздячит туда дистинкт

На самом деле для разовых запросов - практически похуй как ты что там пишешь. Ну поебётся сервер минуту вместо того чтобы выполнить запрос за полсекунды - всем похуй, запрос разовый, лишь бы результат был правильный

но если запрос выполняется постоянно и многократно - то тут конечно приходтся смотреть как что писать
хуяссе... почти зауважал... правильные вещи говоришь, кэп!
...
Рейтинг: 0 / 0
25 сообщений из 242, страница 3 из 10
Форумы / MySQL [закрыт для гостей] / Господа базоёбы, скок сюды
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]