Задать вопрос
@psiklop

Почему этот запрос выводит из строя mysql?

Версия mysql = 8
Не то, чтобы я опытный в mysql, но для меня полтергейст.

Итак занимаюсь, чем умею на практике долблю в одиночку mysql, таблица довольно большая на 10 миллионов строк.
Делаю такой запрос:
SELECT id, time, ROW_NUMBER() OVER (PARTITION BY phone ORDER BY time DESC) AS n FROM sms WHERE
time > NOW() - INTERVAL 6 MONTH AND time < NOW() - INTERVAL 6 HOUR;

Срабатывает норм, в 5-10 секунд укладывается.

Далее добавляю это:
SELECT * FROM (SELECT id, time, ROW_NUMBER() OVER (PARTITION BY phone ORDER BY time DESC) AS n FROM sms WHERE
time > NOW() - INTERVAL 6 MONTH AND time < NOW() - INTERVAL 6 HOUR) t WHERE n <=4;

Тоже нормально.

А теперь просто трындец, пишу так и mysql виснет (не помогает systemctl restart mysql)
И не помогает reboot серверу (только с физической кнопки)
Пробовал на двух разных серверах.
SELECT * FROM (SELECT id, time, ROW_NUMBER() OVER (PARTITION BY phone ORDER BY time DESC) AS n FROM sms WHERE
time > NOW() - INTERVAL 6 MONTH AND time < NOW() - INTERVAL 6 HOUR) t WHERE n=4;


Видимо я что-то делаю не так и не понимаю, но логически мне кажется ничего особенного.
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Простой 32 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы