|
Господа базоёбы, скок сюды
#58488
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
Ссылка на вложение 2:
|
|||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
Я почти ничего в SQL не понимаю, не, конечно, select * на табличку сделать могу, но что-то большее - увы, когда-то что-то тыркал, но очень давно, мне это в работе не требуется. Задача такая, нужно выводить список вложений дедофорума на удаление для конкретного пользака, при этом я хочу видеть наглядно данные и из соседних табличек - ну там имя, форум, пост. Я открыл доку, почитал, https://dev.mysql.com/doc/refman/8.0/en/ Вроде бы получился такой запрос Код: SQL 1. 2. 3. 4. 5. 6. 7. 8.
Почему спрашиваю, вначале у меня какие-то дубли получались, однако если ебануть distinct, дубли удалялись. Но я так понимаю, если в запросе прибегнул к дистинкту - это плохо? Или нет? В общем, я внимательно ещё раз посмотрел что к чему присобачивается, вроде бы всё норм. и количетсво строк - то, что и из таблички с вложениями. На первой картинке просто количество вложений из таблички вложений, на второй табличка - которая меня интересует ... |
|||||||||||||||||||
:
Нравится:
Не нравится:
|
|||||||||||||||||||
07.06.2022, 19:34 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Хз как там в MySQL, но псевдонимы таблицам я бы назначил ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
07.06.2022, 19:39 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
left join не нужен. Просто JOIN. И тогда не нужно будет и условие and v1_attachment.name is not null;. Такие записи сами отсекутся при выполнении on v1_post.id = v1_attachment.post_id ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 19:41 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
left join не нужен. Просто JOIN. И тогда не нужно будет и условие and v1_attachment.name is not null;. Такие записи сами отсекутся при выполнении on v1_post.id = v1_attachment.post_id ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 19:43 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
про distinct навскидку уже понял, что это плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 19:44 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Черт. Это же MySQl Не знаю, как там LEFT JOIN по умолчанию LEFT OUTER JOIN или LEFT INNER JOIN ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 19:45 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Наверное оутер. Непонятно откуда у него дубли были ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 19:46 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Тож так сначала подумал, что надо from v1_attachment сделать. Но потом подумал, что на v1_post.user_id наверняка индекс есть. ... |
|||
[Видеоклип: YouTube]
:
Изменено: 07.06.2022, 19:48 - PaNik
Нравится:
Не нравится:
|
|||
07.06.2022, 19:47 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
к таблице post, самой объёмной, присоединяю остальные. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 19:49 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Черт. Это же MySQl Не знаю, как там LEFT JOIN по умолчанию LEFT OUTER JOIN или LEFT INNER JOIN ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 19:49 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Тож так сначала подумал, что надо from v1_attachment сделать. Но потом подумал, что на v1_post.user_id наверняка индекс есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 19:50 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Наверное оутер. Непонятно откуда у него дубли были ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 19:51 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Тож так сначала подумал, что надо from v1_attachment сделать. Но потом подумал, что на v1_post.user_id наверняка индекс есть. ![]() ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
07.06.2022, 19:53 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Понятно. Фик знает как там мусикл действует, но по сути ты сначала получаешь полную выборку и в том числе с сообщениями без аттачментов, а сверху накладываешь условие нот налл. Попробуй в условии склейки таблиц добавить этот нот налл. В фб такое прокатывали. Может побыстрее ьудет ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 19:55 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
basename, планы давай ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
07.06.2022, 19:59 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Вообще в ms sql хорошо (в теории) было бы примерно так: 1) при наличии индекса по v1_post.user_id выбираем во времянку id и темы всех сообщения юзверя (их пока немного, это ж не Инос или Гарыныч с дедофорума с Овер 100к постов). 2) эту времянку inner join'ним на v1_attachment и v1_topic, выводим нужные поля. ... |
|||
[Видеоклип: YouTube]
:
Изменено: 07.06.2022, 20:06 - PaNik
Нравится:
Не нравится:
|
|||
07.06.2022, 20:05 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Понятно. Фик знает как там мусикл действует, но по сути ты сначала получаешь полную выборку и в том числе с сообщениями без аттачментов, а сверху накладываешь условие нот налл. Попробуй в условии склейки таблиц добавить этот нот налл. В фб такое прокатывали. Может побыстрее ьудет ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:14 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
basename, планы давай ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:15 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Тож так сначала подумал, что надо from v1_attachment сделать. Но потом подумал, что на v1_post.user_id наверняка индекс есть. Таблички с вложениями, топиками и форумами - небольшие. Табличка пост - самая объемная. Вот с ней вроде более менее список выводится, как ожидалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:19 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
А что мне в данном случае даст right? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:20 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Иннер джоин ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:22 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Понятно. Фик знает как там мусикл действует, но по сути ты сначала получаешь полную выборку и в том числе с сообщениями без аттачментов, а сверху накладываешь условие нот налл. Попробуй в условии склейки таблиц добавить этот нот налл. В фб такое прокатывали. Может побыстрее ьудет ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:25 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Табличка пост - самая объемная. ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:26 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Дед на сиквел был слаб, насколько я помню ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:27 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Понятно. Фик знает как там мусикл действует, но по сути ты сначала получаешь полную выборку и в том числе с сообщениями без аттачментов, а сверху накладываешь условие нот налл. Попробуй в условии склейки таблиц добавить этот нот налл. В фб такое прокатывали. Может побыстрее ьудет ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:28 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Понятно. Фик знает как там мусикл действует, но по сути ты сначала получаешь полную выборку и в том числе с сообщениями без аттачментов, а сверху накладываешь условие нот налл. Попробуй в условии склейки таблиц добавить этот нот налл. В фб такое прокатывали. Может побыстрее ьудет ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:28 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Хм, в муsql inner join -это просто join, а right - то же, что left, но наоборот. Он тоже outer. Если я правильно понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:31 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:32 |
|
Господа базоёбы, скок сюды
|
|
---|---|
#18+
... ... |
|
:
|
|
07.06.2022, 20:35 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Хм, в муsql inner join -это просто join, а right - то же, что left, но наоборот. Он тоже outer. Если я правильно понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:36 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Хм, в муsql inner join -это просто join, а right - то же, что left, но наоборот. Он тоже outer. Если я правильно понял.
Ну а их выборка то на основе user_id ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:37 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Ага, через таблицу с постами ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:38 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:42 |
|
Господа базоёбы, скок сюды
|
|
---|---|
#18+
Черт. Это же MySQl Не знаю, как там LEFT JOIN по умолчанию LEFT OUTER JOIN или LEFT INNER JOIN LEFT INNER JOIN это нонсенс. Бывают Inner join Left join Right join Full join ... |
|
:
|
|
07.06.2022, 20:43 |
|
Господа базоёбы, скок сюды
|
|
---|---|
#18+
Черт. Это же MySQl Не знаю, как там LEFT JOIN по умолчанию LEFT OUTER JOIN или LEFT INNER JOIN LEFT INNER JOIN это нонсенс. Бывают Inner join Left join Right join Full join ... |
|
:
|
|
07.06.2022, 20:46 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Это стандарты, и му sql их чтит и поддерживает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:47 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Черт. Это же MySQl Не знаю, как там LEFT JOIN по умолчанию LEFT OUTER JOIN или LEFT INNER JOIN LEFT INNER JOIN это нонсенс. Бывают Inner join Left join Right join Full join ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:48 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Черт. Это же MySQl Не знаю, как там LEFT JOIN по умолчанию LEFT OUTER JOIN или LEFT INNER JOIN LEFT INNER JOIN это нонсенс. Бывают Inner join Left join Right join Full join - join Inner - left outer - right outer ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:51 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Черт. Это же MySQl Не знаю, как там LEFT JOIN по умолчанию LEFT OUTER JOIN или LEFT INNER JOIN LEFT INNER JOIN это нонсенс. Бывают Inner join Left join Right join Full join ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:51 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Черт. Это же MySQl Не знаю, как там LEFT JOIN по умолчанию LEFT OUTER JOIN или LEFT INNER JOIN LEFT INNER JOIN это нонсенс. Бывают Inner join Left join Right join Full join - join Inner - left outer - right outer ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 20:54 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Черт. Это же MySQl Не знаю, как там LEFT JOIN по умолчанию LEFT OUTER JOIN или LEFT INNER JOIN LEFT INNER JOIN это нонсенс. Бывают Inner join Left join Right join Full join - join Inner - left outer - right outer Бязя, тебе нужно понять что такое null в колонке, тогда поймёшь Все соединение Левое соединение Правое соединение Полное соединение Получится разное количество строк с null в значениях. Но все равно в left join Right join Full join Порождают дубли , с null , просто это разные соединения таблиц , ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:09 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Черт. Это же MySQl Не знаю, как там LEFT JOIN по умолчанию LEFT OUTER JOIN или LEFT INNER JOIN LEFT INNER JOIN это нонсенс. Бывают Inner join Left join Right join Full join - join Inner - left outer - right outer ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:11 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Черт. Это же MySQl Не знаю, как там LEFT JOIN по умолчанию LEFT OUTER JOIN или LEFT INNER JOIN LEFT INNER JOIN это нонсенс. Бывают Inner join Left join Right join Full join - join Inner - left outer - right outer Бязя, тебе нужно понять что такое null в колонке, тогда поймёшь Все соединение Левое соединение Правое соединение Полное соединение Получится разное количество строк с null в значениях. Но все равно в left join Right join Full join Порождают дубли , с null , просто это разные соединения таблиц , Вначале другие дубли были. Сабжевый запрос без дублей вроде работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:14 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Это жуть. По стандартам sql не помню каким Толи 72 Толи позже Бязя, тебе нужно понять что такое null в колонке, тогда поймёшь Все соединение Левое соединение Правое соединение Полное соединение Получится разное количество строк с null в значениях. Но все равно в left join Right join Full join Порождают дубли , с null , просто это разные соединения таблиц , Вначале другие дубли были. Сабжевый запрос без дублей вроде работает. Как сат2 советовал. Это зависит от структуры базы , и чего тебе надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:22 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
left join не нужен. Просто JOIN. И тогда не нужно будет и условие and v1_attachment.name is not null;. Такие записи сами отсекутся при выполнении on v1_post.id = v1_attachment.post_id Это с какого суахили? Я понимаю, что в данном случае имя у атачмента вряд ли будет null, но как оно связано с джойном и лефт джойном, мне понять не суждено. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:30 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
паразит [игнорируется] Что то я пошел спать, базе надо какие-нибудь курсы пройти про скуэль. Про 3 нормальных формах. А можно и про 4-5. Мне Като втирали про 6 я не вник. Говорят есть 7-8 но это чистая математика, для задротов ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:30 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... - join Inner - left outer - right outer Бязя, тебе нужно понять что такое null в колонке, тогда поймёшь Все соединение Левое соединение Правое соединение Полное соединение Получится разное количество строк с null в значениях. Но все равно в left join Right join Full join Порождают дубли , с null , просто это разные соединения таблиц , Вначале другие дубли были. Сабжевый запрос без дублей вроде работает. Как сат2 советовал. Это зависит от структуры базы , и чего тебе надо. Изначально, что я хотел: - найти все вложения пользака - вывести id пользака, имя, id топика, id поста, id форума, именование вложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:32 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
basename [игнорируется] Чего там прикладывать? Лефт везде убери, раз тебе атачменты нужны. С лефт джойном. Ты берёшь, получаешь все посты пользователя и пришпандориваешь аттачи к тем постам, где они есть, вот тебе и дубли. Туда же ещё и темы пришпандориваешь так же. Смысла лефт джойна тем и постов нет, потому что темя с постами связаны по любому. А так как тебе надо только посты с аттачами, то и смысла лефт джойна с аттачами тоже нет. ЗЫ но я не так лефты пишу, раз он левый то присобачиваемую таблицу пишу слева от знака =. Типа эстет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:37 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
блядь, просто йобаная классика Именно для таких долбойобов я пишу статьи, но долбойобы, разумеется, хуй их читают ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:41 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
basename [игнорируется] Чего там прикладывать? Лефт везде убери, раз тебе атачменты нужны. С лефт джойном. Ты берёшь, получаешь все посты пользователя и пришпандориваешь аттачи к тем постам, где они есть, вот тебе и дубли. Туда же ещё и темы пришпандориваешь так же. Смысла лефт джойна тем и постов нет, потому что темя с постами связаны по любому. А так как тебе надо только посты с аттачами, то и смысла лефт джойна с аттачами тоже нет. ЗЫ но я не так лефты пишу, раз он левый то присобачиваемую таблицу пишу слева от знака =. Типа эстет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:41 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
блядь, просто йобаная классика Именно для таких долбойобов я пишу статьи, но долбойобы, разумеется, хуй их читают ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:42 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Почему нет? Зачем тебе они, если ты аттачи ищешь? И зачем тебе показывать посты, которые не привязаны к топикам (с лефтом именно так ты и делаешь), если это как минимум странно? Как там планы в таком случае это майскуль построит ХЗ. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:44 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
basename [игнорируется] И я не уверен, что твоё условие attach.name is not null имеет смысл, как я понимаю у деды любой аттач имеет имя. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:45 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Почему нет? Зачем тебе они, если ты аттачи ищешь? И зачем тебе показывать посты, которые не привязаны к топикам (с лефтом именно так ты и делаешь), если это как минимум странно? Как там планы в таком случае это майскуль построит ХЗ. Он все присоединил вначале, потом просто отобразил, что попросили. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:46 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Без него просто показывает в столбце - null. Короче, примеры надо показывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 21:49 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Он же все равно сканит таблицу полностью, потом селект делает. Так? По уму может выбрать посты по юзер_ид, а потом уже к ним присоединить всё остальное. В любом случае, если ты ищешь аттачи, то лефт убирай. Ну я я бы всё равно начал с аттачей,как бы привык начинать оттуда, что ищу. Что-то вроде Код: SQL 1. 2. 3. 4.
... |
|||
:
Изменено: 07.06.2022, 21:52 - Горбатый ёж
Нравится:
Не нравится:
|
|||
07.06.2022, 21:50 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Без него просто показывает в столбце - null. Короче, примеры надо показывать. Значит я ошибаюсь. Потому что лефт джойн используется. ... |
|||
:
Изменено: 07.06.2022, 21:52 - Горбатый ёж
Нравится:
Не нравится:
|
|||
07.06.2022, 21:51 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
left join не нужен. Просто JOIN. И тогда не нужно будет и условие and v1_attachment.name is not null;. Такие записи сами отсекутся при выполнении on v1_post.id = v1_attachment.post_id Это с какого суахили? Я понимаю, что в данном случае имя у атачмента вряд ли будет null, но как оно связано с джойном и лефт джойном, мне понять не суждено. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:00 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
basename [игнорируется] Чего там прикладывать? Лефт везде убери, раз тебе атачменты нужны. С лефт джойном. Ты берёшь, получаешь все посты пользователя и пришпандориваешь аттачи к тем постам, где они есть, вот тебе и дубли. Туда же ещё и темы пришпандориваешь так же. Смысла лефт джойна тем и постов нет, потому что темя с постами связаны по любому. А так как тебе надо только посты с аттачами, то и смысла лефт джойна с аттачами тоже нет. ЗЫ но я не так лефты пишу, раз он левый то присобачиваемую таблицу пишу слева от знака =. Типа эстет. У Бази в первоначальном запросе на таблицу постов накладывается ограничение по юзер_ид, что в случае индекса по юзер_ид инклуде (пост_ид, топик_ид) сведётся к поиску по индексу для выделения постов автора и джоину по относительно небольшому числу постов конкретного юзера. Правда у него тогда в where мешает условие на is not null для вложения. З.ы. нет планов - нет аналитики. З.з.ы. вышеописанное применительно к ms sql, чего там с оптимизатором mysql - я хз ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:01 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Потому что лефт покажет записи из постов даже те, у которых нет аттачей. ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:02 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Условие в предложении where, а не в on соединения ![]() ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:03 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Почему нет? Зачем тебе они, если ты аттачи ищешь? И зачем тебе показывать посты, которые не привязаны к топикам (с лефтом именно так ты и делаешь), если это как минимум странно? Как там планы в таком случае это майскуль построит ХЗ. Он все присоединил вначале, потом просто отобразил, что попросили. ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:05 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Почему нет? Зачем тебе они, если ты аттачи ищешь? И зачем тебе показывать посты, которые не привязаны к топикам (с лефтом именно так ты и делаешь), если это как минимум странно? Как там планы в таком случае это майскуль построит ХЗ. Он все присоединил вначале, потом просто отобразил, что попросили. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:12 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... Зачем тебе они, если ты аттачи ищешь? И зачем тебе показывать посты, которые не привязаны к топикам (с лефтом именно так ты и делаешь), если это как минимум странно? Как там планы в таком случае это майскуль построит ХЗ. Он все присоединил вначале, потом просто отобразил, что попросили. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:15 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... Зачем тебе они, если ты аттачи ищешь? И зачем тебе показывать посты, которые не привязаны к топикам (с лефтом именно так ты и делаешь), если это как минимум странно? Как там планы в таком случае это майскуль построит ХЗ. Он все присоединил вначале, потом просто отобразил, что попросили. Но открывает простор для действий оптимизатора, может пойти по неоптимальному пути (мой длинный пост выше) и отработать заметно медленнее с привлечением заметно большего числа ресурсов. З.Ы. Нужны планы. З.З.Ы. планы имеют тенденцию становиться неактуальными с увеличением числа записей. ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:17 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
блядь, просто йобаная классика Именно для таких долбойобов я пишу статьи, но долбойобы, разумеется, хуй их читают Там моя подпись, так чот ищи сам но в двух словах классическая ошибка - это фильтрация по "правой" таблице при лефт джойне, которая превращает аутер в иннер. если изначально и нужен был иннер, то в нормальных серверах рояли особо не играет. Если оптимизатор говно - рояль может быть второй классический случай - использование дистинкта при неправильной работе с мастер-слейв вместо того чтобы юзать exists (который на самом деле нужен), некто юзает джойн со слейвом, получает мультипликацию хедера, пугается и пиздячит туда дистинкт На самом деле для разовых запросов - практически похуй как ты что там пишешь. Ну поебётся сервер минуту вместо того чтобы выполнить запрос за полсекунды - всем похуй, запрос разовый, лишь бы результат был правильный но если запрос выполняется постоянно и многократно - то тут конечно приходтся смотреть как что писать ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:25 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
в случае иннер джоина условия соединения равносильны условиям в предложении where и оптимизатор может снача на сотни тысяч записей в таблице постов начать джоинить другие таблицы, что может потребовать выделения значительного объема ОЗУ и сброса результата в tempdb, что не есть продуктивно. Простите, был напуган. это бред, сорян. По крайней мере для скуля (судя по темпдб) Для мелких серверов с хуевым оптмизатором - может быть правдой. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:26 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
З.з.ы. вышеописанное применительно к ms sql, чего там с оптимизатором mysql - я хз ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:27 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Йожег попутал, у тебя is not null в where, а не в on Но открывает простор для действий оптимизатора, может пойти по неоптимальному пути (мой длинный пост выше) и отработать заметно медленнее с привлечением заметно большего числа ресурсов. З.Ы. Нужны планы. З.З.Ы. планы имеют тенденцию становиться неактуальными с увеличением числа записей. ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:27 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Йожег попутал, у тебя is not null в where, а не в on ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:29 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Завязывай спрашивать, делай что советуют ... |
|||
[Видеоклип: YouTube]
:
Изменено: 07.06.2022, 22:31 - PaNik
Нравится:
Не нравится:
|
|||
07.06.2022, 22:31 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
вначале у меня какие-то дубли получались так вроде и задача была " нужно выводить список вложений" - значит ты мог получить в одной теме несколько постов - если в посте было несколько аттачей ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:31 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
блядь, просто йобаная классика Именно для таких долбойобов я пишу статьи, но долбойобы, разумеется, хуй их читают Там моя подпись, так чот ищи сам но в двух словах классическая ошибка - это фильтрация по "правой" таблице при лефт джойне, которая превращает аутер в иннер. если изначально и нужен был иннер, то в нормальных серверах рояли особо не играет. Если оптимизатор говно - рояль может быть второй классический случай - использование дистинкта при неправильной работе с мастер-слейв вместо того чтобы юзать exists (который на самом деле нужен), некто юзает джойн со слейвом, получает мультипликацию хедера, пугается и пиздячит туда дистинкт На самом деле для разовых запросов - практически похуй как ты что там пишешь. Ну поебётся сервер минуту вместо того чтобы выполнить запрос за полсекунды - всем похуй, запрос разовый, лишь бы результат был правильный но если запрос выполняется постоянно и многократно - то тут конечно приходтся смотреть как что писать ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2022, 22:37 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Народ изголодался по сиквелу, передуны старые. Задачка наипростецкая для студента первокурсника на зачёт в первом семестре. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 04:30 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Привет, я тоже давно не сплю. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 05:25 |
|
Господа базоёбы, скок сюды
|
|
---|---|
#18+
а я не спал всю ночь но на скуль не тянет хотя и базоеб ... |
|
:
|
|
08.06.2022, 05:32 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Начинается обычный день, все по графику. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 05:34 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
а я не спал всю ночь но на скуль не тянет хотя и базоеб ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 05:35 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
а я не спал всю ночь но на скуль не тянет хотя и базоеб ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
08.06.2022, 06:03 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
ничего не пил - проспал до 16 потом не спится когда пью пиво сплю хорошо сегодня схожу за пивом но придется подождать до 11 когда наливайка откроется ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 06:29 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
left join не нужен. Просто JOIN. И тогда не нужно будет и условие and v1_attachment.name is not null;. Такие записи сами отсекутся при выполнении on v1_post.id = v1_attachment.post_id Это с какого суахили? Я понимаю, что в данном случае имя у атачмента вряд ли будет null, но как оно связано с джойном и лефт джойном, мне понять не суждено. Это конечно такой хитрый лайфхак, использование поля not null для имитации джойна при использовании лефт джойна, но в общем случае это не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 08:04 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
У Бази в первоначальном запросе на таблицу постов накладывается ограничение по юзер_ид ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 08:06 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
значит ты мог получить в одной теме несколько постов - если в посте было несколько аттачей ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 08:09 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Ждите 39 минут и разберёте эту задачку ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 08:14 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Ждите 39 минут и разберёте эту задачку ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 08:27 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Это конечно такой хитрый лайфхак, использование поля not null для имитации джойна при использовании лефт джойна, но в общем случае это не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 10:36 |
|
Господа базоёбы, скок сюды
|
|
---|---|
#18+
чтобы понять что происходит без плана не получится ... |
|
:
|
|
08.06.2022, 10:48 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Это конечно такой хитрый лайфхак, использование поля not null для имитации джойна при использовании лефт джойна, но в общем случае это не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 10:50 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
v1_post.user_id = '173' может быть табле скан и индекс сик почуствуйте разницу ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 10:52 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Так-то лефтами можно выстраивать порядок соединения выборки нихуя подобного еббадь Впрочем сейчас тоже есть возможность включить сию заебатую возможность используя хинт. ЗЫ сцуко, как же меня заебал этот хинт во всех подряд запросах, даже если там всего 2 таблицы соединяются. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 10:57 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
это пидорская техника зачем быть пидором? Пока ни один ревьювер не завернул конкретно это исправление. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 11:00 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Ещё не очень понятно, зачем значение для user_id передавать в апострофах? Если это число, то и передавать его числом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 11:01 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
твой опыт мал ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 11:13 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Именно для таких долбойобов я пишу статьи На, у тебя отвалилось ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 11:15 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Ещё не очень понятно, зачем значение для user_id передавать в апострофах? Если это число, то и передавать его числом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 11:15 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
может там тип чар у паля заипенел Но мне кажется это базя просто перестраховался или пример неправильно понял. Скорее всего для id дед использовал автоинкрементное поле, но оно вряд ли строковое. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 11:22 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
ты не "элита", ты говно ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 12:30 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
это поше или очередное его подрожалово? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 12:30 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
это поше или очередное его подрожалово? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 12:36 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Это конечно такой хитрый лайфхак, использование поля not null для имитации джойна при использовании лефт джойна, но в общем случае это не работает. Почему не работает??? ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
08.06.2022, 13:23 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
включить сию заебатую возможность используя хинт. ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
08.06.2022, 13:28 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
блядь, просто йобаная классика Именно для таких долбойобов я пишу статьи, но долбойобы, разумеется, хуй их читают Там моя подпись, так чот ищи сам но в двух словах классическая ошибка - это фильтрация по "правой" таблице при лефт джойне, которая превращает аутер в иннер. если изначально и нужен был иннер, то в нормальных серверах рояли особо не играет. Если оптимизатор говно - рояль может быть второй классический случай - использование дистинкта при неправильной работе с мастер-слейв вместо того чтобы юзать exists (который на самом деле нужен), некто юзает джойн со слейвом, получает мультипликацию хедера, пугается и пиздячит туда дистинкт На самом деле для разовых запросов - практически похуй как ты что там пишешь. Ну поебётся сервер минуту вместо того чтобы выполнить запрос за полсекунды - всем похуй, запрос разовый, лишь бы результат был правильный но если запрос выполняется постоянно и многократно - то тут конечно приходтся смотреть как что писать ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 13:57 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
блядь, просто йобаная классика Именно для таких долбойобов я пишу статьи, но долбойобы, разумеется, хуй их читают Там моя подпись, так чот ищи сам но в двух словах классическая ошибка - это фильтрация по "правой" таблице при лефт джойне, которая превращает аутер в иннер. если изначально и нужен был иннер, то в нормальных серверах рояли особо не играет. Если оптимизатор говно - рояль может быть второй классический случай - использование дистинкта при неправильной работе с мастер-слейв вместо того чтобы юзать exists (который на самом деле нужен), некто юзает джойн со слейвом, получает мультипликацию хедера, пугается и пиздячит туда дистинкт На самом деле для разовых запросов - практически похуй как ты что там пишешь. Ну поебётся сервер минуту вместо того чтобы выполнить запрос за полсекунды - всем похуй, запрос разовый, лишь бы результат был правильный но если запрос выполняется постоянно и многократно - то тут конечно приходтся смотреть как что писать ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 14:12 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Потому что в общем случае поле name в таблице аттачментов может быть null и ты потеряешь аттачмент. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 14:24 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Потому что в общем случае поле name в таблице аттачментов может быть null и ты потеряешь аттачмент. ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
08.06.2022, 14:27 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Там имя файла с аттачментом. Если там null - аттачмента нет. А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 14:29 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Там имя файла с аттачментом. Если там null - аттачмента нет. А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)? ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
08.06.2022, 14:39 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Там имя файла с аттачментом. Если там null - аттачмента нет. А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)? И вообще использовать такое вместо простого джойна - это странно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 14:40 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Там имя файла с аттачментом. Если там null - аттачмента нет. А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)? И вообще использовать такое вместо простого джойна - это странно. ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
08.06.2022, 14:49 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Вполне рабочий вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2022, 15:21 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
"Общие случаи" часто пагубно сказываться на производительности в данном конкретном случае ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
08.06.2022, 16:28 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Интересно и как может пагубно сказаться на производительности замена left join на join? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 08:15 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
про distinct навскидку уже понял, что это плохо. поменьше слушай всяких пидоров ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:28 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
В общем, вот структуры таблиц, из которых я беру данные Можно просто вывести из таблички v1_attachment все вложения пользователя но я хочу наглядно видеть - id поста - id пользователя - имя пользователя - id форума - id темы - системное имя вложения Все эти данные присутствуют и пересекаются в таблицах но естсетвенно не во всех есть все ) Я так и не понял до сих пор чем плох конкретно мой запрос. Код 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:36 |
|
Господа базоёбы, скок сюды
#60151
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
Я почти ничего в SQL не понимаю, не, конечно, select * на табличку сделать могу, но что-то большее - увы, когда-то что-то тыркал, но очень давно, мне это в работе не требуется. Задача такая, нужно выводить список вложений дедофорума на удаление для конкретного пользака, при этом я хочу видеть наглядно данные и из соседних табличек - ну там имя, форум, пост. Я открыл доку, почитал, https://dev.mysql.com/doc/refman/8.0/en/ Вроде бы получился такой запрос Код: SQL 1. 2. 3. 4. 5. 6. 7. 8.
Почему спрашиваю, вначале у меня какие-то дубли получались, однако если ебануть distinct, дубли удалялись. Но я так понимаю, если в запросе прибегнул к дистинкту - это плохо? Или нет? В общем, я внимательно ещё раз посмотрел что к чему присобачивается, вроде бы всё норм. и количетсво строк - то, что и из таблички с вложениями. На первой картинке просто количество вложений из таблички вложений, на второй табличка - которая меня интересует ... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
09.06.2022, 14:40 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Интересно и как может пагубно сказаться на производительности замена left join на join? в общему случае для скуля (а не мускуля) существуют варианты, когда такая замена влияет на производительность в случае с мелкими базами (мускул, постгре, мария, фиребёрд, етк) изменеие производительности может быть из-за оптимизатора, когда при преобразовании AST для разных кейсов используются разные "костыльные" ветки оптимизатора. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:41 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Там имя файла с аттачментом. Если там null - аттачмента нет. А что делать, если аттачмент в систему приаттачивается посредством православного копипаста, который о опять таки в общем случае может не иметь никакого имени файла (в отличии от богомерзкого драгэндропа)? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:41 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
постгре И всё равно я сомневаюсь, что замена left join на join может вызвать деградацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:46 |
|
Господа базоёбы, скок сюды
#60157
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
left join не нужен. Просто JOIN. И тогда не нужно будет и условие and v1_attachment.name is not null;. Такие записи сами отсекутся при выполнении on v1_post.id = v1_attachment.post_id ... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
09.06.2022, 14:46 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Я так и не понял до сих пор чем плох конкретно мой запрос. Тебе он не нужен, потому что ты ищешь вложения. Замени left join на join и убери условие name is not null. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:47 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
ага, уже сделал. постом выше ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:49 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
basename [игнорируется] id пользователя указывай без апострофов, копейки конечно, но мало ли. В апострофах строковые данные пишутся, а id там int. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:52 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
ок, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:53 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Собственно поле name может быть null в аттачментах, поэтому с точки зрения БД ограничение name is not null может привести к потере аттачментов. В остальном так и есть, простыми джойнами соединять и нормально отработает, потому что аттачмент дожен быть привязан к посту, пост к топику, а топик к форуму, на полях там стоит признак not null. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 14:57 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
basename [игнорируется] Если тебе надо будет найти просто все посты автора, заодно посмотреть аттачменты, то делаешь left join на соединение поста и аттачмента. ... |
|||
:
Изменено: 09.06.2022, 14:59 - Горбатый ёж
Нравится:
Не нравится:
|
|||
09.06.2022, 14:59 |
|
Господа базоёбы, скок сюды
#60194
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
Ссылка на вложение 2:
|
|||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
basename, планы давай на второй с простым join ... |
|||||||||||||||||||
:
Нравится:
Не нравится:
|
|||||||||||||||||||
09.06.2022, 15:13 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Хм, а почему с join Query Cost больше, чем с Left Join? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:16 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
постгре И всё равно я сомневаюсь, что замена left join на join может вызвать деградацию. from Table1 a left join table2 b on a=b vs select a.* from Table1 a inner join table2 b on a=b могут давать разный перформанс при разный случаях ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:21 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Господа, проясните плиз за Query cost. Ведь значение больше, это хуже? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:30 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Планы разные. По сути вопроса: вероятно, количество вложений подопытного несколько менее числа топиков, в которые он насрал. ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:36 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
постгре И всё равно я сомневаюсь, что замена left join на join может вызвать деградацию. from Table1 a left join table2 b on a=b vs select a.* from Table1 a inner join table2 b on a=b могут давать разный перформанс при разный случаях ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:37 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Господа, проясните плиз за Query cost. Ведь значение больше, это хуже? Это реальный план выполнения или предполагаемый? ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:39 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Выводи время исполнения для каждого запроса ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:40 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Планы разные. По сути вопроса: вероятно, количество вложений подопытного несколько менее числа топиков, в которые он насрал. То ли дело файрволл одминить, либо ещё чего-нибудь конфигурастить в ОС и ПО. там арифметика чёткая без возможности выбора вариантов достижения ))) Хотя правда в сложной маршрутизации тоже есть стоимость маршрута ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:40 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Господа, проясните плиз за Query cost. Ведь значение больше, это хуже? Это реальный план выполнения или предполагаемый? https://dev.mysql.com/doc/workbench/en/wb-performance-explain.html Нажал выполнить запрос, потом Execution plan Видимо, реальный ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:43 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
basename, планы давай на второй с простым join если ты так дальше будешь углубляться, то не в запросе твоем дело, а в структуре фашисткой базы и всем этом ебучем php-ковнокоде ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:44 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Блин, сложный ваш SQL. даже текущую задачу можно решить фиг знает сколькми способами. ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:45 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Блин, сложный ваш SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:46 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
По планам порядок соединения таблиц разный. Это реальный план выполнения или предполагаемый? https://dev.mysql.com/doc/workbench/en/wb-performance-explain.html Нажал выполнить запрос, потом Execution plan Видимо, реальный По времени выполнения тоже смотреть желательно, а не только на стоимость. ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:47 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... на второй с простым join если ты так дальше будешь углубляться, то не в запросе твоем дело, а в структуре фашисткой базы и всем этом ебучем php-ковнокоде это тебе элита говорит. внемли ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:51 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Вот ты спросил ))) https://dev.mysql.com/doc/workbench/en/wb-performance-explain.html Нажал выполнить запрос, потом Execution plan Видимо, реальный По времени выполнения тоже смотреть желательно, а не только на стоимость. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:52 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
По сути Базя в 1-м посте получил готовый правильный результат, который имеем за разумное время. Запускать этот запрос с разными юзер_ид особо часто, как полагаю, не планируется. Дальше холивар и возможные оптимизации ![]() ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:52 |
|
Господа базоёбы, скок сюды
#60272
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
У меня в игноре только Пошэгеи, пидарасы и саентологи. ... |
||||||||||||||||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
||||||||||||||||
09.06.2022, 15:58 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Размер таблиц небольшой ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
09.06.2022, 15:59 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Правильно ли я понимаю, грубо говоря, в случае left join ему надо просто к большому куску надо присобачить ещё кусочек, а в случае join, отсечь ненужное из двух кусков и уже их склеить? тогда вроде бы логично, что join дороже и дольше должен выполняться? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:12 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Правильно ли я понимаю, грубо говоря, в случае left join ему надо просто к большому куску надо присобачить ещё кусочек, а в случае join, отсечь ненужное из двух кусков и уже их склеить? тогда вроде бы логично, что join дороже и дольше должен выполняться? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:22 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Правильно ли я понимаю, грубо говоря, в случае left join ему надо просто к большому куску надо присобачить ещё кусочек, а в случае join, отсечь ненужное из двух кусков и уже их склеить? тогда вроде бы логично, что join дороже и дольше должен выполняться? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:24 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Соединение будет происходить одинаково в обоих случаях, но LEFT, как правило, возвращает больше записей и поэтому выполняется медленнее ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:24 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Правильно ли я понимаю, грубо говоря, в случае left join ему надо просто к большому куску надо присобачить ещё кусочек, а в случае join, отсечь ненужное из двух кусков и уже их склеить? тогда вроде бы логично, что join дороже и дольше должен выполняться? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:26 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Правильно ли я понимаю, грубо говоря, в случае left join ему надо просто к большому куску надо присобачить ещё кусочек, а в случае join, отсечь ненужное из двух кусков и уже их склеить? тогда вроде бы логично, что join дороже и дольше должен выполняться? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:27 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Обоснуй ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:27 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Хуяссе планы... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:28 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Хуяссе планы... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:29 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
А есть текстовый вариант? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:29 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
а что, и правда надо? это же знания из детского сада ну ладно, что стар, что мал... давайте на секундочку представим, что формальная запись запроса и правда отображает тот порядок, в котором "физически" соединятся таблицы при выполнении запроса тогда для select * from Tab1 left join tab2 on a=b будет один вариант соединения - мы идем по Таб1 и лепим к ней Таб2 а вот для select * from Tab1 left INNER join tab2 on a=b будет уже 2 варианта - идти по таб1 и лепить таб2 - или идти по таб2 и лепить к ней таб1 таким образом "Одинаково в обоих случаях" - немного неправильно. Второй момент - "лефт выполнятеся быстрее, т.к." - во первых не всегда "больше записей" (и как правило - ровно столько же записей - или даже МЕНЬШЕ) во вторых (зависит от случая) лефт может (и будет) читать с диска меньше данных для "правой" таблицы - следовательно, сам по себе запро будет выполнятся быстрее Ну и в некоторых случаях лефт все таки возвращает МЕНЬШЕ записей, чем иннер. upd поправил второй запрос, скопипастил и не заменил лефт на иннер ... |
|||
:
Изменено: 09.06.2022, 16:34 - Tammy Jo Saint Cloud
Нравится:
Не нравится:
|
|||
09.06.2022, 16:31 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
давайте на секундочку представим, что формальная запись запроса и правда отображает тот порядок, в котором "физически" соединятся таблицы при выполнении запроса Или это любители хинтовать запросы? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:34 |
|
Господа базоёбы, скок сюды
#60321
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
Ссылка на вложение 2:
|
|||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
В тектовом виде такое. Оно? или что должно быть? ... |
|||||||||||||||||||
:
Нравится:
Не нравится:
|
|||||||||||||||||||
09.06.2022, 16:34 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
давайте на секундочку представим, что формальная запись запроса и правда отображает тот порядок, в котором "физически" соединятся таблицы при выполнении запроса Или это любители хинтовать запросы? "ДАвайте ПРЕДСТАВИМ", для целей демонстрации ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:35 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
В тектовом виде такое. Оно? или что должно быть? Но прям такое впечатление, что оптимизатору похую, что джойн, что лефт джойн. "ДАвайте ПРЕДСТАВИМ" ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:38 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
а вот для select * from Tab1 left join tab2 on a=b будет уже 2 варианта - идти по таб1 и лепить таб2 - или идти по таб2 и лепить к ней таб1 таким образом "Одинаково в обоих случаях" - немного неправильно. То есть. Если у нас таблицы Post и Attachment, то в Post должен быть индекс по Attachment_Id. Не думаю, что кто-нибудь будет такой индекс делать ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:39 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Это пагубный подход в обучении. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:41 |
|
Господа базоёбы, скок сюды
|
|
---|---|
#18+
Если у нас таблицы Post и Attachment, то в Post должен быть индекс по Attachment_Id. Не думаю, что кто-нибудь будет такой индекс делать ... |
|
:
|
|
09.06.2022, 16:41 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Второй вариант может выполнятся или на коротких таблицах, когда оптимизатор решит, что использовать индексы тут нет нужды, или когда в первой таблице есть индекс по полю второй таблицы. Я могу показать как минимум несколько вариантов - с большими таблицами, с маленькими, с индексами, без индексов и так далее. "второй вариант" показывает, что план выполнения иннер джойна может варьироваться по последовательности соединений (лефт тоже может,но для простоты мы это не учитываем) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:43 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Нормальный человек будет делать индекс на FK. В некоторых случаях нормальный человек НИКОГДА не будет делать индекс на ФК ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:43 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Горбатый ёж [игнорируется] Вот ещё вывод explain analyze Как только в читабельном виде отобразить... join Цитата [игнорируется] '-> Nested loop inner join (cost=473.95 rows=424) (actual time=0.235..3.066 rows=197 loops=1)\n -> Nested loop inner join (cost=325.38 rows=369) (actual time=0.154..1.790 rows=369 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.23 rows=369) (actual time=0.144..1.183 rows=369 loops=1)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.001..0.001 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.003..0.003 rows=1 loops=369)\n' Цитата [игнорируется] '-> Nested loop left join (cost=419.06 rows=212) (actual time=0.137..2.520 rows=197 loops=1)\n -> Nested loop inner join (cost=344.79 rows=212) (actual time=0.130..1.888 rows=197 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.21 rows=369) (actual time=0.093..0.869 rows=369 loops=1)\n -> Filter: (v1_attachment.`name` is not null) (cost=0.29 rows=1) (actual time=0.002..0.003 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.002..0.002 rows=1 loops=369)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.003..0.003 rows=1 loops=197)\n' ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:44 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
В некоторых случаях нормальный человек НИКОГДА не будет делать индекс на ФК ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:45 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Второй вариант может выполнятся или на коротких таблицах, когда оптимизатор решит, что использовать индексы тут нет нужды, или когда в первой таблице есть индекс по полю второй таблицы. Я могу показать как минимум несколько вариантов - с большими таблицами, с маленькими, с индексами, без индексов и так далее. "второй вариант" показывает, что план выполнения иннер джойна может варьироваться по последовательности соединений (лефт тоже может,но для простоты мы это не учитываем) Я тоже могу придумать способ, когда никаких индексов нет и INNER с OUTER будут выполнятся за одно и тоже время. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:48 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Нормальный человек будет делать индекс на FK. В некоторых случаях нормальный человек НИКОГДА не будет делать индекс на ФК Дофига способов построить кривую базу, но вовсе не надо применять их всех! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:50 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Горбатый ёж [игнорируется] Вот ещё вывод explain analyze Как только в читабельном виде отобразить... join Цитата [игнорируется] '-> Nested loop inner join (cost=473.95 rows=424) (actual time=0.235..3.066 rows=197 loops=1)\n -> Nested loop inner join (cost=325.38 rows=369) (actual time=0.154..1.790 rows=369 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.23 rows=369) (actual time=0.144..1.183 rows=369 loops=1)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.001..0.001 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.003..0.003 rows=1 loops=369)\n' Цитата [игнорируется] '-> Nested loop left join (cost=419.06 rows=212) (actual time=0.137..2.520 rows=197 loops=1)\n -> Nested loop inner join (cost=344.79 rows=212) (actual time=0.130..1.888 rows=197 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.21 rows=369) (actual time=0.093..0.869 rows=369 loops=1)\n -> Filter: (v1_attachment.`name` is not null) (cost=0.29 rows=1) (actual time=0.002..0.003 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.002..0.002 rows=1 loops=369)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.003..0.003 rows=1 loops=197)\n' ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 16:54 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Горбатый ёж [игнорируется] Вот ещё вывод explain analyze Как только в читабельном виде отобразить... join Цитата [игнорируется] '-> Nested loop inner join (cost=473.95 rows=424) (actual time=0.235..3.066 rows=197 loops=1)\n -> Nested loop inner join (cost=325.38 rows=369) (actual time=0.154..1.790 rows=369 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.23 rows=369) (actual time=0.144..1.183 rows=369 loops=1)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.001..0.001 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.003..0.003 rows=1 loops=369)\n' Цитата [игнорируется] '-> Nested loop left join (cost=419.06 rows=212) (actual time=0.137..2.520 rows=197 loops=1)\n -> Nested loop inner join (cost=344.79 rows=212) (actual time=0.130..1.888 rows=197 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.21 rows=369) (actual time=0.093..0.869 rows=369 loops=1)\n -> Filter: (v1_attachment.`name` is not null) (cost=0.29 rows=1) (actual time=0.002..0.003 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.002..0.002 rows=1 loops=369)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.003..0.003 rows=1 loops=197)\n' ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 17:11 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Горбатый ёж [игнорируется] Вот ещё вывод explain analyze Как только в читабельном виде отобразить... join Цитата [игнорируется] '-> Nested loop inner join (cost=473.95 rows=424) (actual time=0.235..3.066 rows=197 loops=1)\n -> Nested loop inner join (cost=325.38 rows=369) (actual time=0.154..1.790 rows=369 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.23 rows=369) (actual time=0.144..1.183 rows=369 loops=1)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.001..0.001 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.003..0.003 rows=1 loops=369)\n' Цитата [игнорируется] '-> Nested loop left join (cost=419.06 rows=212) (actual time=0.137..2.520 rows=197 loops=1)\n -> Nested loop inner join (cost=344.79 rows=212) (actual time=0.130..1.888 rows=197 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.21 rows=369) (actual time=0.093..0.869 rows=369 loops=1)\n -> Filter: (v1_attachment.`name` is not null) (cost=0.29 rows=1) (actual time=0.002..0.003 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.002..0.002 rows=1 loops=369)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.003..0.003 rows=1 loops=197)\n' Короче, я хз ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 17:13 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Горбатый ёж [игнорируется] Вот ещё вывод explain analyze Как только в читабельном виде отобразить... join Цитата [игнорируется] '-> Nested loop inner join (cost=473.95 rows=424) (actual time=0.235..3.066 rows=197 loops=1)\n -> Nested loop inner join (cost=325.38 rows=369) (actual time=0.154..1.790 rows=369 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.23 rows=369) (actual time=0.144..1.183 rows=369 loops=1)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.001..0.001 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.003..0.003 rows=1 loops=369)\n' Цитата [игнорируется] '-> Nested loop left join (cost=419.06 rows=212) (actual time=0.137..2.520 rows=197 loops=1)\n -> Nested loop inner join (cost=344.79 rows=212) (actual time=0.130..1.888 rows=197 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.21 rows=369) (actual time=0.093..0.869 rows=369 loops=1)\n -> Filter: (v1_attachment.`name` is not null) (cost=0.29 rows=1) (actual time=0.002..0.003 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.002..0.002 rows=1 loops=369)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.003..0.003 rows=1 loops=197)\n' второй запрос это просто explain analyze. Без представления графической оболочки https://dev.mysql.com/blog-archive/mysql-explain-analyze/#:~:text=What is it?,points in the execution plan. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 17:14 |
|
Господа базоёбы, скок сюды
#60358
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
Горбатый ёж [игнорируется] Вот ещё вывод explain analyze Как только в читабельном виде отобразить... join Цитата [игнорируется] '-> Nested loop inner join (cost=473.95 rows=424) (actual time=0.235..3.066 rows=197 loops=1)\n -> Nested loop inner join (cost=325.38 rows=369) (actual time=0.154..1.790 rows=369 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.23 rows=369) (actual time=0.144..1.183 rows=369 loops=1)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.001..0.001 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.003..0.003 rows=1 loops=369)\n' Цитата [игнорируется] '-> Nested loop left join (cost=419.06 rows=212) (actual time=0.137..2.520 rows=197 loops=1)\n -> Nested loop inner join (cost=344.79 rows=212) (actual time=0.130..1.888 rows=197 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.21 rows=369) (actual time=0.093..0.869 rows=369 loops=1)\n -> Filter: (v1_attachment.`name` is not null) (cost=0.29 rows=1) (actual time=0.002..0.003 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.002..0.002 rows=1 loops=369)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.003..0.003 rows=1 loops=197)\n' ... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
09.06.2022, 17:22 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Короче, я хз Ради интереса, попробуй такие варианты Код: SQL 1. 2. 3. 4. 5. 6. 7. 8.
Код: SQL 1. 2. 3. 4. 5. 6. 7. 8.
Код: SQL 1. 2. 3. 4. 5. 6. 7.
Код: SQL 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 17:32 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Код: SQL 1. 2. 3. 4. 5. 6. 7.
Код 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 17:42 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Соединение будет происходить одинаково в обоих случаях, но LEFT, как правило, возвращает больше записей и поэтому выполняется медленнее ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 17:43 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Мне другое интересно. У деды что, каждый пост три раза хранится? Просто, хтмл и серчабле? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 17:54 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Ну ебанулся временно, бывает! ... |
|||
:
Изменено: 09.06.2022, 17:57 - cat2
Нравится:
Не нравится:
|
|||
09.06.2022, 17:55 |
|
Господа базоёбы, скок сюды
#60379
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
Мне другое интересно. У деды что, каждый пост три раза хранится? Просто, хтмл и серчабле? ... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
09.06.2022, 17:58 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
а откуда движок? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 18:03 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Деда писал, но я не помню. А может и ошибаюсь ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 18:48 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Я почти ничего в SQL не понимаю, не, конечно, select * на табличку сделать могу, но что-то большее - увы, когда-то что-то тыркал, но очень давно, мне это в работе не требуется. Задача такая, нужно выводить список вложений дедофорума на удаление для конкретного пользака, при этом я хочу видеть наглядно данные и из соседних табличек - ну там имя, форум, пост. Я открыл доку, почитал, https://dev.mysql.com/doc/refman/8.0/en/ Вроде бы получился такой запрос Код: SQL 1. 2. 3. 4. 5. 6. 7. 8.
Почему спрашиваю, вначале у меня какие-то дубли получались, однако если ебануть distinct, дубли удалялись. Но я так понимаю, если в запросе прибегнул к дистинкту - это плохо? Или нет? В общем, я внимательно ещё раз посмотрел что к чему присобачивается, вроде бы всё норм. и количетсво строк - то, что и из таблички с вложениями. На первой картинке просто количество вложений из таблички вложений, на второй табличка - которая меня интересует Вообще базы разные всегда. Нужны, важны ,у них структура разная всегда, ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 19:39 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Правильно ли я понимаю, грубо говоря, в случае left join ему надо просто к большому куску надо присобачить ещё кусочек, а в случае join, отсечь ненужное из двух кусков и уже их склеить? тогда вроде бы логично, что join дороже и дольше должен выполняться? ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
09.06.2022, 19:43 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Соединение будет происходить одинаково в обоих случаях ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
09.06.2022, 19:43 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Определённо, хотя не обязательно ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
09.06.2022, 19:44 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Пошэгей, как известный пидарас, наверняка пишет хинты ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
09.06.2022, 19:45 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Горбатый ёж [игнорируется] Вот ещё вывод explain analyze Как только в читабельном виде отобразить... join Цитата [игнорируется] '-> Nested loop inner join (cost=473.95 rows=424) (actual time=0.235..3.066 rows=197 loops=1)\n -> Nested loop inner join (cost=325.38 rows=369) (actual time=0.154..1.790 rows=369 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.23 rows=369) (actual time=0.144..1.183 rows=369 loops=1)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.001..0.001 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.003..0.003 rows=1 loops=369)\n' Цитата [игнорируется] '-> Nested loop left join (cost=419.06 rows=212) (actual time=0.137..2.520 rows=197 loops=1)\n -> Nested loop inner join (cost=344.79 rows=212) (actual time=0.130..1.888 rows=197 loops=1)\n -> Index lookup on v1_post using v1_post_user_id_idx (user_id=173) (cost=196.21 rows=369) (actual time=0.093..0.869 rows=369 loops=1)\n -> Filter: (v1_attachment.`name` is not null) (cost=0.29 rows=1) (actual time=0.002..0.003 rows=1 loops=369)\n -> Index lookup on v1_attachment using v1_attachment_unq (post_id=v1_post.id) (cost=0.29 rows=1) (actual time=0.002..0.002 rows=1 loops=369)\n -> Single-row index lookup on v1_topic using PRIMARY (id=v1_post.topic_id) (cost=0.25 rows=1) (actual time=0.003..0.003 rows=1 loops=197)\n' Короче, я хз ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
09.06.2022, 19:47 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Не факт ... |
|||
[Видеоклип: YouTube]
:
Нравится:
Не нравится:
|
|||
09.06.2022, 19:49 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
В некоторых случаях нормальный человек НИКОГДА не будет делать индекс на ФК Но по этому полю только "дополнительно фильтруют" и никогда не используют это поле для основной фильтрации Следовательно, это поле индексировать не нужно Таким образом на большой таблице мы экономим один большой ненужный индекс И если полей типа "аналитика" несколько - то таким образом мы эконономим несколько раз ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 20:38 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
так, нахуй Базя, если ты не в состоянии в собственном топике фильтровать обсосов типа дубль вэ - я не вижу смысла обсуждать тут общаться конструктивно Я пытался. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 20:40 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
так, нахуй Базя, если ты не в состоянии в собственном топике фильтровать обсосов типа дубль вэ - я не вижу смысла обсуждать тут общаться конструктивно Я пытался. твои попытки не засчитаны профессионал ты никакой ты хороший пидор - аставаяся с нами будешь и дальше пидором ну а чо ты хотел? в элиту таких как ты не берут ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 21:36 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Но по этому полю только "дополнительно фильтруют" и никогда не используют это поле для основной фильтрации Ещё есть примеры? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 21:46 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Но по этому полю только "дополнительно фильтруют" и никогда не используют это поле для основной фильтрации Ещё есть примеры? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2022, 21:54 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Одного достаточно, нет? :) А хочется расширять горизонты своих знаний, может пригодиться же. Есть ещё какие-то варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2022, 08:34 |
|
Господа базоёбы, скок сюды
|
|
---|---|
#18+
Одного достаточно, нет? :) А хочется расширять горизонты своих знаний, может пригодиться же. Есть ещё какие-то варианты? В системах ЕТЛ/ДВХ тоже может быть - но это вариация вышеописанного случая с аналитикой, да и вообще там ФК не делают, ибо нефиг. ... |
|
:
|
|
10.06.2022, 12:30 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Короче, я хз Ради интереса, попробуй такие варианты Код: SQL 1. 2. 3. 4. 5. 6. 7. 8.
Код: SQL 1. 2. 3. 4. 5. 6. 7. 8.
Код: SQL 1. 2. 3. 4. 5. 6. 7.
Код: SQL 1. 2. 3. 4. 5. 6. 7.
Один стартовый, второй - твой Твой как-то выглядит пологичнее, что-ли. объеденить и получить поле с topic id, а потом уже аттачменты прихуячить. Но вот, как заметно стало, почему то если на табличку с вложениями натравиливать просто join, а не left,то запрос выполняется дольше. И я не понимаю, почему, исходя из execution plan он в случае с join где-то нарыл в два раза больше строк Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2022, 13:04 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Это? Код 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2022, 13:32 |
|
Господа базоёбы, скок сюды
|
|
---|---|
#18+
например когда значения в справочнике всего два и распределены они в дочерней примерно поровну - чтение такого индекса будет дольше чем скан всей таблицы ... |
|
:
|
|
10.06.2022, 15:27 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
например когда значения в справочнике всего два и распределены они в дочерней примерно поровну ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2022, 16:30 |
|
Господа базоёбы, скок сюды
|
|
---|---|
#18+
basename [игнорируется] Пойдет. Ну вот. Теперь все ясно. Зря я на Tammy Jo Saint Cloud наезжал.. Сумрачный тевтонский гений Деды сделал-таки в attacment индекс по post_id. И не сделал для lookup-таблицы attacment кластерного первичного индекса (post_Id, id) Поэтому inner join и тормозит Закон Паркинсона работает всегда. "Если что-то можно сделать неправильно, то всегда найдется ... который так и сделает ... |
|
:
|
|
10.06.2022, 16:48 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
В некоторых случаях нормальный человек НИКОГДА не будет делать индекс на ФК Но по этому полю только "дополнительно фильтруют" и никогда не используют это поле для основной фильтрации Следовательно, это поле индексировать не нужно Таким образом на большой таблице мы экономим один большой ненужный индекс И если полей типа "аналитика" несколько - то таким образом мы эконономим несколько раз ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2022, 13:48 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Вообще такой сайт это скорее отчётная система, тут база денормализованная должна быть. Данные редко добавляются , о запросы всегда. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2022, 14:32 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
В некоторых случаях нормальный человек НИКОГДА не будет делать индекс на ФК Но по этому полю только "дополнительно фильтруют" и никогда не используют это поле для основной фильтрации Следовательно, это поле индексировать не нужно Таким образом на большой таблице мы экономим один большой ненужный индекс И если полей типа "аналитика" несколько - то таким образом мы эконономим несколько раз ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2022, 22:03 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Вообще такой сайт это скорее отчётная система, тут база денормализованная должна быть. Данные редко добавляются , о запросы всегда. в некоторый случаях денормализация может приводить к значительному возрастанию обьема денормализованных данных, и весь выигрыш, который мы получаем за счет элиминации джойнов и благодаря наличию правильных удобных индексов - мы будем терять на задержках операций ввода-вывода из-за возросшего обхъема данных ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2022, 22:05 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... Но по этому полю только "дополнительно фильтруют" и никогда не используют это поле для основной фильтрации Следовательно, это поле индексировать не нужно Таким образом на большой таблице мы экономим один большой ненужный индекс И если полей типа "аналитика" несколько - то таким образом мы эконономим несколько раз Вот эту твою фантазию можно сделать отдельной таблицей. Избавишься разом от фк. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2022, 22:24 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Вообще такой сайт это скорее отчётная система, тут база денормализованная должна быть. Данные редко добавляются , о запросы всегда. в некоторый случаях денормализация может приводить к значительному возрастанию обьема денормализованных данных, и весь выигрыш, который мы получаем за счет элиминации джойнов и благодаря наличию правильных удобных индексов - мы будем терять на задержках операций ввода-вывода из-за возросшего обхъема данных Больше данных - дороже. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2022, 22:31 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Вообще такой сайт это скорее отчётная система, тут база денормализованная должна быть. Данные редко добавляются , о запросы всегда. в некоторый случаях денормализация может приводить к значительному возрастанию обьема денормализованных данных, и весь выигрыш, который мы получаем за счет элиминации джойнов и благодаря наличию правильных удобных индексов - мы будем терять на задержках операций ввода-вывода из-за возросшего обхъема данных По этому, прежде чем нести внеочередной бред, посмотри на пропускную способность арендованных сетевых интерфейсов и смд дисков. И сравни их. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2022, 07:21 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
смд ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2022, 07:49 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
вообще прикольно конечно тебе говорят про этот сайт, а ты начинаешь нести абстрактный бред типа охрененно умный, но дельного ничего предложить не можешь ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2022, 07:52 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Есть в какой нибудь внятной нотации описание структуры базы данных этого сайта? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2022, 19:20 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
basename [игнорируется] Я имел ввиду в erwin , или еще в чем нибудь описание базы есть? Или все на коленке сделано? ... |
|||
:
Изменено: 15.06.2022, 21:22 - Sparrow
Нравится:
Не нравится:
|
|||
15.06.2022, 21:20 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Есть в какой нибудь внятной нотации описание структуры базы данных этого сайта? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2022, 21:23 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Хороший инструмент. Если мне доверяешь дай файлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2022, 21:34 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Хороший инструмент. Если мне доверяешь дай файлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2022, 21:41 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Хороший инструмент. Если мне доверяешь дай файлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2022, 21:43 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... Но по этому полю только "дополнительно фильтруют" и никогда не используют это поле для основной фильтрации Следовательно, это поле индексировать не нужно Таким образом на большой таблице мы экономим один большой ненужный индекс И если полей типа "аналитика" несколько - то таким образом мы эконономим несколько раз Вот эту твою фантазию можно сделать отдельной таблицей. Избавишься разом от фк. у меня написано "поле, ссылающееся на справочник (отдельную таблиц)" и ты предлаганшь отдельную таблицу сделать отдельной таблицей? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2022, 22:43 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
вообще прикольно конечно тебе говорят про этот сайт, а ты начинаешь нести абстрактный бред типа охрененно умный, но дельного ничего предложить не можешь Дальше пошли уже общие размышления и ответы на задаваемые вопросы ps это ж приличный форум, сорри ... |
|||
:
Изменено: 16.06.2022, 22:47 - Tammy Jo Saint Cloud
Нравится:
Не нравится:
|
|||
16.06.2022, 22:44 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Хороший инструмент. Если мне доверяешь дай файлы. корявенько, но для одного раза сойдеть ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2022, 22:45 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
который содержит поле... ну, например - "аналитика", которое, разумеется, ссылается на справочник "аналитика" Вот эту твою фантазию можно сделать отдельной таблицей. Избавишься разом от фк. у меня написано "поле, ссылающееся на справочник (отдельную таблиц)" и ты предлаганшь отдельную таблицу сделать отдельной таблицей? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2022, 05:54 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... Вот эту твою фантазию можно сделать отдельной таблицей. Избавишься разом от фк. у меня написано "поле, ссылающееся на справочник (отдельную таблиц)" и ты предлаганшь отдельную таблицу сделать отдельной таблицей? есть таблица типа, ну не знаю create table AnalyticCode( id int not null primary key ,Code nvarchar(128) ) create table SomeBigFuckingDataTab ( Date datetime, SomeDimension int, SomeMeasure int, AnalyticCodeId int not null references AnalyticCode(Id) ) ФК позволяет нам сохранять целочную ссылочность, а индекс там в хрен не упал, т.к. по коду аналитики мы максимум фильтруем/группируем, но никогда не ищем что тут куда выносить то? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2022, 22:48 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... Вот эту твою фантазию можно сделать отдельной таблицей. Избавишься разом от фк. у меня написано "поле, ссылающееся на справочник (отдельную таблиц)" и ты предлаганшь отдельную таблицу сделать отдельной таблицей? есть таблица типа, ну не знаю create table AnalyticCode( id int not null primary key ,Code nvarchar(128) ) create table SomeBigFuckingDataTab ( Date datetime, SomeDimension int, SomeMeasure int, AnalyticCodeId int not null references AnalyticCode(Id) ) ФК позволяет нам сохранять целочную ссылочность, а индекс там в хрен не упал, т.к. по коду аналитики мы максимум фильтруем/группируем, но никогда не ищем что тут куда выносить то? Да, ты прав. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 06:14 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Но конкретно в твоем примере проще аналитику засунуть в SomeBigFuckingDataTab :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 06:20 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Но конкретно в твоем примере проще аналитику засунуть в SomeBigFuckingDataTab :) В клиенте мы может должны видеть список значений для группировки, не таскать же нго из таблицы с данными, да и на клиенте хранить так себе идея. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 06:42 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Но конкретно в твоем примере проще аналитику засунуть в SomeBigFuckingDataTab :) В клиенте мы может должны видеть список значений для группировки, не таскать же нго из таблицы с данными, да и на клиенте хранить так себе идея. ( Date datetime, SomeDimension int, SomeMeasure int, AnalyticCode int, Code nvarchar(128) ) Не таскай Экономить место при современной цене дисков чаще всего плохая идея ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 06:54 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
по коду аналитики мы максимум фильтруем/группируем, но никогда не ищем Без дополнительных ограничений получишь фуллскан. Или ты предлагаешь тащить на клиента и там фильтровать/группировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 07:03 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Собственно идея то понятна. Съэкономить на индексе, но загрузить клиента. Может упереться в сеть. В общем зависит от множества условий, решение неуниверсальное. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 07:06 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Но конкретно в твоем примере проще аналитику засунуть в SomeBigFuckingDataTab :) А если аналитика постоянно пополняется то это не выход Опять таки все равно надо держать дескрипшены, атрибуты и прочее - выходит стандартная справочная таблица ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 18:41 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
по коду аналитики мы максимум фильтруем/группируем, но никогда не ищем Без дополнительных ограничений получишь фуллскан. Или ты предлагаешь тащить на клиента и там фильтровать/группировать? select SomeDimension,sum(SomeMeasure) from DataTable where AnalyticCodeId = 16 group by SomeDimension фильтрация/группировка select SomeDimension,sum(case AnalyticCodeId when 16 then SomeMeasure end) as c1,sum(SomeMeasure) as c2 from DataTable group by SomeDimension в первом случая индекс нужен, во втором - не нужен, ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 18:45 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Но конкретно в твоем примере проще аналитику засунуть в SomeBigFuckingDataTab :) В клиенте мы может должны видеть список значений для группировки, не таскать же нго из таблицы с данными, да и на клиенте хранить так себе идея. ( Date datetime, SomeDimension int, SomeMeasure int, AnalyticCode int, Code nvarchar(128) ) Не таскай Экономить место при современной цене дисков чаще всего плохая идея У меня поддерживаемых языков десятка полтора. Такое в эту структуру не засунешь я уж не говоряю о том, что как правило справочные таблицы содержать охулиард всяких дополнительный аттрибутов, которые описывают ту или иную аналитику. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 18:47 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
по коду аналитики мы максимум фильтруем/группируем, но никогда не ищем Без дополнительных ограничений получишь фуллскан. Или ты предлагаешь тащить на клиента и там фильтровать/группировать? select SomeDimension,sum(SomeMeasure) from DataTable where AnalyticCodeId = 16 group by SomeDimension фильтрация/группировка select SomeDimension,sum(case AnalyticCodeId when 16 then SomeMeasure end) as c1,sum(SomeMeasure) as c2 from DataTable group by SomeDimension в первом случая индекс нужен, во втором - не нужен, У оптимизатора может быть другое мнение. Там же селективность рулит, он может подумать нелогично. Тесты нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 22:51 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
по коду аналитики мы максимум фильтруем/группируем, но никогда не ищем Без дополнительных ограничений получишь фуллскан. Или ты предлагаешь тащить на клиента и там фильтровать/группировать? select SomeDimension,sum(SomeMeasure) from DataTable where AnalyticCodeId = 16 group by SomeDimension фильтрация/группировка select SomeDimension,sum(case AnalyticCodeId when 16 then SomeMeasure end) as c1,sum(SomeMeasure) as c2 from DataTable group by SomeDimension в первом случая индекс нужен, во втором - не нужен, У оптимизатора может быть другое мнение. Там же селективность рулит, он может подумать нелогично. Тесты нужны. в первом случае - индекс может нужен, может нет, там и правда индекс может помочь, а может быть тоже - до одного места дверца ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 23:20 |
|
Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... Без дополнительных ограничений получишь фуллскан. Или ты предлагаешь тащить на клиента и там фильтровать/группировать? select SomeDimension,sum(SomeMeasure) from DataTable where AnalyticCodeId = 16 group by SomeDimension фильтрация/группировка select SomeDimension,sum(case AnalyticCodeId when 16 then SomeMeasure end) as c1,sum(SomeMeasure) as c2 from DataTable group by SomeDimension в первом случая индекс нужен, во втором - не нужен, У оптимизатора может быть другое мнение. Там же селективность рулит, он может подумать нелогично. Тесты нужны. в первом случае - индекс может нужен, может нет, там и правда индекс может помочь, а может быть тоже - до одного места дверца Второй запрос крайне хреновый для большой таблицы. Место экономишь, а нервы пользователя нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2022, 06:51 |
|
|
start [/forum/topic.php?fid=24&tid=2074&all=1]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
365ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
738ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 1157ms |
0 / 0 |