<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=454219&amp;view=findpost&amp;p=3914439</guid>
        <pubDate>Fri, 06 Dec 2024 11:55:51 +0000</pubDate>
        <title>Запрос на удаление дубликатов</title>
        <link>https://forum.sources.ru/index.php?showtopic=454219&amp;view=findpost&amp;p=3914439</link>
        <description><![CDATA[Majestio: <strong class='tag-b'>Akina</strong>, понятно. Пасип.]]></description>
        <author>Majestio</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=454219&amp;view=findpost&amp;p=3914421</guid>
        <pubDate>Fri, 06 Dec 2024 09:55:08 +0000</pubDate>
        <title>Запрос на удаление дубликатов</title>
        <link>https://forum.sources.ru/index.php?showtopic=454219&amp;view=findpost&amp;p=3914421</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=454219&view=findpost&p=3914394'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Majestio &#064; <time class="tag-quote__quoted-time" datetime="2024-12-06T05:02:53+00:00">06.12.24, 05:02</time></span><div class='quote '>а мой самый последний вариант - норм?</div></div><br>
Нет. Просто посчитай ради любопытства, сколько пар записей вынужден будет прожевать сервер... если у тебя в таблице 50 тыс. записей и, скажем, в среднем по 10 записей с одинаковым jobillicoCA_id, так это под 300 тыс. пар получится. А если по 20, то уже полмиллиона. И так далее.<br>
<br>
Да и INNER JOIN без ON clause - хоть и съедается в MySQL/MariaDB без синтаксической ошибки, но всё равно моветон. Ну что мешало написать хотя бы CROSS JOIN?]]></description>
        <author>Akina</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=454219&amp;view=findpost&amp;p=3914394</guid>
        <pubDate>Fri, 06 Dec 2024 05:02:53 +0000</pubDate>
        <title>Запрос на удаление дубликатов</title>
        <link>https://forum.sources.ru/index.php?showtopic=454219&amp;view=findpost&amp;p=3914394</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=454219&view=findpost&p=3914393'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2024-12-06T04:28:18+00:00">06.12.24, 04:28</time></span><div class='quote '>А, да, у тебя ж Машка... ну тогда</div></div><br>
Благодарю&#33;<br>
<br>
Да ещё ... а мой самый последний вариант - норм? Будет делать что должно, и не будет ли тормозить?]]></description>
        <author>Majestio</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=454219&amp;view=findpost&amp;p=3914393</guid>
        <pubDate>Fri, 06 Dec 2024 04:28:18 +0000</pubDate>
        <title>Запрос на удаление дубликатов</title>
        <link>https://forum.sources.ru/index.php?showtopic=454219&amp;view=findpost&amp;p=3914393</link>
        <description><![CDATA[Akina: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">WITH cte AS (</div><div class="code_line">&nbsp;&nbsp; &nbsp;SELECT id, ROW_NUMBER() OVER (PARTITION BY jobillicoCA_id ORDER BY id ASC) rn</div><div class="code_line">&nbsp;&nbsp; &nbsp;FROM jobillicoCA_jobs_fixed </div><div class="code_line">&nbsp;&nbsp; &nbsp;)</div><div class="code_line">DELETE jobillicoCA_jobs_fixed</div><div class="code_line">FROM jobillicoCA_jobs_fixed</div><div class="code_line">JOIN cte USING (id)</div><div class="code_line">WHERE cte.rn &#62; 1</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
А, да, у тебя ж Машка... ну тогда<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">DELETE jobillicoCA_jobs_fixed</div><div class="code_line">FROM jobillicoCA_jobs_fixed</div><div class="code_line">JOIN ( SELECT id, ROW_NUMBER() OVER (PARTITION BY jobillicoCA_id ORDER BY id ASC) rn</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; FROM jobillicoCA_jobs_fixed</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; ) AS cte USING (id)</div><div class="code_line">WHERE cte.rn &#62; 1;</div></ol></div></div></div></div>]]></description>
        <author>Akina</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=454219&amp;view=findpost&amp;p=3914347</guid>
        <pubDate>Thu, 05 Dec 2024 10:51:22 +0000</pubDate>
        <title>Запрос на удаление дубликатов</title>
        <link>https://forum.sources.ru/index.php?showtopic=454219&amp;view=findpost&amp;p=3914347</link>
        <description><![CDATA[Majestio: Всем привет&#33;<br>
<br>
Встала задача удаления дубликатов строк в таблице по полю <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">jobillicoCA_id</span></span>. Ну я, долго не думая, накидал запрос:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">DELETE FROM jobillicoCA_jobs_fixed</div><div class="code_line">WHERE id NOT IN (</div><div class="code_line">&nbsp;&nbsp; &nbsp;SELECT MIN(id)</div><div class="code_line">&nbsp;&nbsp; &nbsp;FROM jobillicoCA_jobs_fixed</div><div class="code_line">&nbsp;&nbsp; &nbsp;GROUP BY jobillicoCA_id</div><div class="code_line">);</div></ol></div></div></div></div><br>
В таблице 49162 записей... Я ждал выполнение запроса порядка 10 мин. Не выдержал, сбросил, перезалил данные. Накидал, как мне показалось, более оптимизированный запрос:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">CREATE TEMPORARY TABLE temp_duplicates AS</div><div class="code_line">SELECT j1.*</div><div class="code_line">FROM jobillicoCA_jobs_fixed j1</div><div class="code_line">JOIN jobillicoCA_jobs_fixed j2 </div><div class="code_line">ON j1.jobillicoCA_id = j2.jobillicoCA_id </div><div class="code_line">WHERE j1.id &#62; j2.id;</div><div class="code_line">&nbsp;</div><div class="code_line">DELETE j1</div><div class="code_line">FROM jobillicoCA_jobs_fixed j1</div><div class="code_line">JOIN temp_duplicates td ON j1.id = td.id;</div></ol></div></div></div></div><br>
Он отработал быстрее - порядка 10 сек. Меня это устроило. Работу сделал. Но сейчас захотелось еще бы более человеческие и/или более оптимизированные варианты решения подобного вопроса. Сделал вот так, но протестировать нет возможности:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">DELETE j1</div><div class="code_line">FROM jobillicoCA_jobs_fixed j1</div><div class="code_line">INNER JOIN jobillicoCA_jobs_fixed j2 </div><div class="code_line">WHERE </div><div class="code_line">&nbsp;&nbsp; &nbsp;j1.id &#62; j2.id AND </div><div class="code_line">&nbsp;&nbsp; &nbsp;j1.jobillicoCA_id = j2.jobillicoCA_id;</div></ol></div></div></div></div><br>
Привильно или не? Есть какие-либо более шустрые варики?]]></description>
        <author>Majestio</author>
        <category>Базы данных: SQL</category>
      </item>
	
      </channel>
      </rss>
	