По умолчанию настройки MySQL то еще уг.
Как вариант база у тебя InnoDB, а по дефолту MySQL заточен под MySAM.
Вкури https://www.google.com/search?q=%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F+mysql
INSERT INTO `test`(`id`, `test_text`, `test_int`) VALUES (4,NULL,NULL)
NULL в SQL не пустая строка
UPD: Прогнал, в MariaDB по другому надо
INSERT INTO `test`(`id`) VALUES (4)
не
второй поток выполнит селект до завершения инсерта первым и получиться лажа
вкури:
уровни изоляции транзакций
хранимые процедуры
сделай хранимую процедуру, в ней одной транзакцией выполни оба запроса и забудь про локи как страшный сон
с индексом по нему, ну и запрос без уторможенного LIKE
UPDATE `new` SET `date`='2022-02-02' WHERE `hvost` = "первый_хвостик";
Как правильно выше написали - пакетами.
Решается в 2 шага
1.Въехать в уровни изоляции транзакций
2. Проще в виде хранимой процедуры, завернуть в одну транзакцию 2 запроса. Первый получает данные, второй удаляет строку, ну и процедура возвращает полученные данные.