1

Я убираю много своих БД / Таблиц и столкнулся с проблемой. Когда я выполняю большинство команд, которые изменяют данные в таблице (например, DELETE FROM или UPDATE), команда возвращается как выполненная, но фактически ничего не делает.

т.е.

mysql> SELECT * FROM members WHERE username = "Alex";
(Returns alex row).
mysql> DELETE FROM members WHERE username = "Alex";
(Says is completed, 0 row affected)
mysql> SELECT * FROM members WHERE username = "Alex";
(Returns alex row).

Этого не должно происходить, когда я запускаю команду удаления, я ожидаю, что она действительно удалит строки. Однако, и вот странная часть, если я останусь в системе некоторое время, строки в конечном итоге будут удалены. Если я немедленно выхожу, строки вообще не удаляются.

Это не тот код, который я запускаю (работаю с гораздо большим количеством условий / больших БД), но концепция та же самая. Я также проверяю удаления, используя adminer.php (менеджер MySQL с 1 php файлом, такой как phpmyadmin), и для того, чтобы любые удаления / обновления регистрировались, требуется около часа.

Я предполагаю, что команды находятся в очереди или кэшируются, или что-то в этом роде, и я хотел бы помешать MySQL сделать это. Когда я ввожу команду, я бы хотел, чтобы MySQL сразу же запустил эту команду, а не возвращал ее до того, как она действительно выполнит команду. Около 500K удалений закончились в течение 2 минут (в это я не могу поверить).

Фактический пример:

mysql> UPDATE members  SET username = REPLACE(username, ' ', '');
Query OK, 0 rows affected (0.05 sec)
Rows matched: 24013  Changed: 0  Warnings: 0
mysql> SELECT * FROM members; 
(displays many usernames, still with whitespaces)

0