У меня возникла проблема с поиском запроса, который, как я думаю, должен работать. Это в формеmysql SELECT NOT IN() - непересекающийся набор?
SELECT DISTINCT a, b, c FROM t1 WHERE NOT IN (SELECT DISTINCT a,b,c FROM t2) AS alias
Но MySQL дроссели, где «IN (» начинается. Поддерживает ли MySQL этот синтаксис? Если нет, то как я могу идти о получении этих результатов? Я хочу, чтобы найти различные кортежи (а, Ь , c) в таблице 1, которых нет в таблице 2.
Знаешь что? Я выполнил этот запрос, и это заняло много времени (более 10 минут), поэтому я его убил. Затем я настраиваю временные таблицы для двух таблиц и вставлял различную информацию. Затем я выполнил запрос к временным таблицам. Взял одну минуту и 4 секунды. Почему mysql не мог оптимизировать этот запрос? – user151841
Если честно, mysql довольно глупо и медленно в некоторых отношениях. Oracle, MS SQL и PostgreSQL во многих отношениях делают намного лучше. Конечно, это также будет намного быстрее, если вы добавите индексы в столбцы таблиц, если у вас их уже нет. хотя это будет стоить времени на вставку, так как индексы должны обновляться каждый раз, это вопрос того, сколько раз вы выполняете каждую операцию и что является более критичным для времени. – wich