Здається, MySQL не виконує команд


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).

Це не повинно відбуватися, коли я запускаю команду видалення, я очікую, що вона фактично видалить рядки. Однак, і ось дивна частина, якщо я залишаюсь увійшов на деякий час, рядки зрештою будуть видалені. Якщо миттєво вийти, рядки взагалі не видаляються.

Це не точний код, я працюю (працює з набагато більше умов / більшої DB), але концепція є точно такою ж. Я також перевіряю видалення за допомогою 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)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.